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

此处,浏览器——即“客户端”。

1、浏览器向DNS服务器发出解析域名的请求;
2、DNS服务器将域名解析为对应的IP地址,并返回给客户端;
3、浏览器与服务器建立TCP连接(默认端口为80);
4、浏览器发出HTTP请求报文;
5、服务器回复HTTP响应报文;
6、浏览器解析响应报文,并显示在Web页上;
7、收发报文结束,释放TCP连接。

注意点:
1、HTTP请求报文在传输层被封装为TCP报文段;
2、TCP报文段在网络层被封装为IP数据包



HTTP请求报文在传输层被封装为TCP报文段——把HTTP会话请求分成报文段,添加源和目的端口;
TCP报文段在网络层被封装为IP数据包——然后使用IP层的IP地址查找目的主机;
客户端通过这个IP地址找到客户端到服务器的路径。

服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换数据。服务器把相应的请求返回给客户端的5000端口。。
客户端的网络层不用关心应用层或者传输层的东西,其主要工作是:通过查找路由表,来确定通过哪个路径到达目的主机。
客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。


注意:
HTTP/1.0是短连接
HTTP/1.1是长连接,不会立马释放的,应该会等Connection:keepAlive时间过了才会释放掉TCP连接。


涉及到的协议
1、应用层:HTTP(WWW访问协议),DNS(域名解析服务)
2、 传输层:TCP(为HTTP提供可靠的数据传输),UDP(DNS使用UDP传输)
3、网络层:IP(IP数据数据包传输和路由选择),ICMP(提供网络传输过程中的差错检测),ARP(将目的主机的IP地址映射成MAC地址)
#运维工程师#
全部评论
看这个 https://zhuanlan.zhihu.com/p/34453198?utm_source=wechat_session&utm_medium=social
点赞 回复
分享
发布于 2019-03-23 21:46

相关推荐

10 86 评论
分享
牛客网
牛客企业服务