在浏览器中输入www.baidu.com后执行的全部过程
在浏览器中输入www.baidu.com后执行的全部过程 step1 浏览器向DNS服务器发出解析域名的请求;
step2 DNS服务器将域名解析为对应的IP地址,并返回给客户端;
step3 浏览器与服务器建立TCP连接(默认端口为80);
step4 浏览器发出HTTP请求报文;
step5 服务器回复HTTP响应报文;
step6 浏览器解析响应报文,并显示在Web页上;
step7 收发报文结束,释放TCP连接。
具体过程解析:
1.HTTP请求报文在传输层被封装为TCP报文段:把HTTP会话请求分成报文段,添加源和目的端口;
2.TCP报文段在网络层被封装为IP数据包,然后使用IP层的IP地址查找目的主机;
客户端通过这个IP地址找到客户端到服务器的路径
3.服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口(比如5000)与服务器进行交换数据。服务器把相应的请求返回给客户端的5000端口
4.客户端的网络层不用关心应用层或者传输层的东西,其主要工作是:通过查找路由表,来确定通过哪个路径到达目的主机。
5.客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。
【在浏览器中输入www.baidu.com后执行的全部过程】注意:
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地址)
推荐阅读
- 热闹中的孤独
- 你到家了吗
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 闲杂“细雨”
- 杜月笙的口才
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 赢在人生六项精进二阶Day3复盘
- 祖母走了