在浏览器中输入www.baidu.com后执行的全部过程

来源:互联网 发布:人像摄影技巧 知乎 编辑:程序博客网 时间:2024/04/27 22:23

1, 依题主所假设的,在浏览器的地址栏输入http://www.baidu.com,这个时候,浏览器将会运行Hypertext Transfer Protocol(Hypertext Transfer Protocol,HTTP),这是一个应用层协议。

2, 通过域名系统(Domain Name SystemDNS),浏览器获得域名的IP地址(百度的IP:202.108.22.5/),这个域名系统也是运行在应用层上的。

3, 这个时候,浏览器已经产生一个HTTP包了,包头带着一个数据信息,表达的意思类似于在说:“度娘度娘,我要你的主页。”

4, 下图所示是浏览器与服务器之间的通信时,HTTP所起的作用(注意,这个时候通信还没开始,这个图只是为了说明HTTP所扮演的角色)

5, 浏览器将这个HTTP信息包交给TCP(传输控制协议)(Transmission Control Protocol),该协议运行于传输层。这是一个相邻的层之间进行交互的例子,较高层级(如HTTP)向较低层级(如TCP)表达服务需要,较低层级给较高层级提供服务。这种相邻层级的交互持续进行,直到抵达最底层。TCP的主要功能是与百度服务器的TCP程序进行连接并建立会话,就像在两者之间建立起一个管道那样,使两者之间的数据得以交互。

6, 直到这个时候,信息包仍然呆在你的电脑里面,没有发出去呢。这个时候,TCP将TCP信息包转发给IP层(Internet Protocol)。 这是个网络层协议。IP的重要功能是寻址和路由,找到一条通往百度的IP地址的最优数据通路。就像一个邮局把你的信件寄到收件人那样。同时,IP将自己的信息加到原有的数据包上,形成新的数据包。

7, 注意,直到这个时候,数据包还在你的电脑上呢,现在,数据包将由IP层交到网络接口层(network interface layer)。这个层定义了通过物理网络输出数据所需的协议与硬件要求。多数电脑使用以太网(Ethernet)。电脑这个时候将IP数据加上以太网帧头和帧尾打包成以太网帧。
8, 这个时候,电脑就可以传输以太网帧的物理数据了,使用真正的电信号走网线传输了。数据包也在这个时候真正离开电脑。当这些电信号到达百度的服务器时,这些电信号将被重新翻译成二进制数据。服务器将对这个数据包进行解析,过程与上述形成该数据包的过程相反。


1. 首先嘛,你得在浏览器里输入要网址:

2. 浏览器查找域名的IP地址

3. 浏览器给web服务器发送一个HTTP请求

4. facebook服务的永久重定向响应.服务器给浏览器响应一个301永久重定向响应,这样浏览器就会问“http://www.facebook.com/” 而非“http://facebook.com/”。

5. 浏览器跟踪重定向地址.浏览器知道了“http://www.facebook.com/”才是要访问的正确地址,所以它会发送另一个获取请求:

6. 服务器“处理”请求.服务器接收到获取请求,然后处理并返回一个响应。

7. 服务器发回一个HTML响应.

8. 浏览器开始显示HTML.

9. 浏览器发送获取嵌入在HTML中的对象。在浏览器显示HTML时,它会注意到需要获取其他地址内容的标签。这时,浏览器会发送一个获取请求来重新获得这些文件。

10. 浏览器发送异步(AJAX)请求。




1、客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。

2、在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。

3、客户端的网络层不用关系应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,我不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。

4、客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址




0 0
原创粉丝点击