当您指示浏览器访问网页时会发生什么?

时间:2011-03-05 12:46:57

标签: http httpwebrequest

我对我的问题有一些了解,但并不完全正确。在http请求之后究竟是以编程方式发生了什么?

Scott Hanselman在他的一篇博客文章中说:

尽可能详细地描述您认为相关的详细内容,当我在浏览器中输入“cnn.com”并按“Go”时会发生什么。

我的问题正是如此,

2 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:2)

  

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

     

浏览器TCP连接到默认HTTP端口上的cnn.com的IP地址(80)

     

浏览器向服务器发送GET请求,询问/ page

     

浏览器说它正在尝试连接到“cnn.com”(cnn.com和bbc.com可能托管在同一个托管公司,具有相同的IP地址)

     

浏览器还说明了您的浏览器,浏览器引擎,浏览器版本,操作系统以及已安装的插件。

     

服务器会发送一个标题,说明您的回复内容,您将收到的数据类型(在本例中为HTML),以及响应的大小(如果可用)。

     如果浏览器没有任何keep-alive指令,

服务器会关闭连接。否则,它将使用此打开的连接来询问可能需要的其他内容(例如,页面中的图像)。

顺便说一句,下载并安装Wireshark,如果你想深入了解窗帘背后的真实情况。