2011-03-05 53 views
0

我有一些知识上我的问题,但不完全是。在http请求之后究竟编程地发生了什么?当您指示浏览器转到网页时会发生什么?

斯科特Hanselman在他的博客帖子的人说:

描述,在尽可能多的细节你认为是相关的,深深的,你可以,当我输入“cnn.com”会发生什么到浏览器然后按“开始”。

我的问题是正是这一点,

回答

7

这就像问“描述了如何进行冠状动脉搭桥”。是的,人们可以解释如何,但在开始具体程序之前,先要先学习医学和学习基础知识。但是,在要点中:

  1. 您的浏览器需要知道cnn.com的IP地址。它本身并不是DNS lookups,而是询问操作系统。
  2. 您的浏览器会连接到该IP地址的端口80
  3. 您的浏览器会发送一个HTTP GET请求
  4. webserver将与statuscode 200和正文内容回复
  5. 您的浏览器将解析HTML
  6. 在可能包含HTML,其他资源(图像,脚本,css文件...),浏览器也会获取这些资源。
  7. 浏览器中完成后,将关闭连接。如果没有,网络服务器会。
+1

体面的答案。一旦你添加书籍,他会阅读 – 2011-03-05 13:01:01

+0

对不起,我不相信有关互联网的书籍。我愿意链接到RFC,开放大学的演示文稿 - 但我猜测,因为他提出了一个相当模糊的入门级问题,维基百科将是一个好的开始。没有必要开始谈论TCP和OSI,但是,恕我直言。 – Konerak 2011-03-05 13:05:10

+0

感谢您的答案。我同意你关于这个过程的复杂性。 – tugberk 2011-03-05 13:09:36

2

浏览器尝试将名称cnn.com解析为其IP地址。

浏览器TCP连接到cnn.com的IP地址(80)

浏览器发送一个GET请求到服务器的默认HTTP端口上,要求为/页

浏览器说,这是试图连接到“cnn.com”(cnn.com和bbc.com可以托管在同一托管公司,具有相同的IP地址)

浏览器还说什么是您的浏览器,浏览器引擎,浏览器版本,操作系统和您已安装的插件。

服务器发送一个标题说什么对您的回复,那种你会接受(在这种情况下,HTML)的数据,和响应的大小,未来是否可以使用。如果没有从浏览器的任何保活指令

服务器关闭连接。否则,它会使用这个打开的连接,要求可能需要的其他东西(图片页面内,例如。)

通过的方式,下载,如果你想深入下去,看看什么是真正安装的Wireshark在窗帘后面走。

+0

wireshark就像小提琴手? – tugberk 2011-03-05 13:09:54

+0

+1对于wireshark建议 - 反向工程网络协议的一个好开始。 – Konerak 2011-03-05 13:10:16

+0

@ tugberk:是的,wireshark就像提琴手一样,但更宽泛一点:它捕获任何传出流量(所以它还包括当你在MSN上通话或获取电子邮件时)。 – Konerak 2011-03-05 13:10:58

相关问题