我正在考虑这个问题很长一段时间。这是一个大的问题,因为它几乎涵盖了与网络开发相关的所有角落。
根据我的理解,这个过程应该是:
以上是我的理解,但我不知道它是否正确?多少精确?我错过了什么吗?
如果它是正确的(或几乎正确),我希望:
我希望这个主题可以帮助所有Web开发人员更好地了解我们每天的工作。
我会根据答案更新这个问题。
感谢。
答案 0 :(得分:5)
正如您所说,这是一个广泛的问题,可以在许多主题上详细介绍。你描述的序列没有任何问题,但你遗漏了很多细节。提一下:
可以详细讨论这些主题中的每一个以及更多主题。或许就您感兴趣的主题提出更具体的问题会更实际吗?
答案 1 :(得分:1)
我也在寻找同样的事情,并发现这个非常详细的答案是在 github协作建立的
答案 2 :(得分:0)
我可以在这里描述一点 -
确定要执行的文件/资源,要加载的语言解释器。
请原谅我,如果我在这里使用翻译错了。在我的回答中可能存在其他错误,我将在稍后尝试纠正它们并包含适当的技术术语。
当Web服务器(例如apache)收到URI时,它会检查是否存在与之匹配的任何现有重写规则。在这种情况下,重写的URI被采用。在任何一种情况下,如果没有文件名来结束URI,则加载默认文件,通常是index.html或index.php等。根据文件名的扩展名,服务器端的相应apache模块例如,加载编程语言支持PHP的mod_php,python的mod_python。适当的服务器端语言解释器(考虑像PHP这样的解释语言)然后为Web服务器准备最终的HTML或其他形式的输出,最终将其作为HTTP响应发送。
答案 3 :(得分:0)
浏览器启动与服务器的TCP连接。它使用三种方式的握手
客户端计算机通过Internet将SYN数据包发送到服务器,询问是否为新连接打开。
如果服务器具有开放的端口,可以接受并启动新的连接,则它将使用SYN / ACK数据包对SYN数据包进行确认应答。
客户端将接收来自服务器的SYN / ACK数据包,并通过发送ACK数据包进行确认。 然后建立了TCP连接以进行数据传输!