步骤:DNS–>TCP–>http
利用DNS协议进行域名解析 --> 建立tcp协议三次握手过程 -->
客户端发出访问网站相应页面请求(发出http协议请求报文) -->
服务端发出相应访问页面的请求信息(发出http) --> 断开tcp协议四次挥手过程
过程:假设:第一次访问百度网页
1)浏览器先尝试从hosts文件中获取百度对应的IP地址
2)如果访问不到,用DNS协议
在DNS协议中,PC会向你的本地DNS服务器求助(一般是路由器),希望从本地DNS服务器那里得到百度的IP,得到就好,得不到还得向更高层次的DNS服务器求助,最终总能得到百度的IP。
3)TCP建立连接(三次握手)
在TCP协议中,建立TCP需要与百度服务器握手三次,你先告诉服务器你要给服务器发东西(SYN),服务器应答你并告诉你它也要给你发东西(SYN、ACK),然后你应答服务器(ACK),总共来回了3次,称为3次握手。
4)为了将消息从你的PC上传到服务器上,需要用到IP协议、ARP协议和OSPF协议。
我们都知道,你的PC和百度服务器之间一般会有许多路由器之类的东西,IP协议指定了出发地(你的PC)和目的地(服务器);你的数据会经过一个又一个路由器,OSPF决定了会经过那些路由器(用一种叫路由算法的玩意,找出最佳路径);从一个路由器怎么传给下一个路由器?这是ARP协议的JOB,ARP负责求下一个节点的地址(我们不止是要目的地,还要中间节点的地址)。IP协议使用的是IP地址,整个发送过程中只涉及出发地和目的地2个IP地址,而ARP协议使用的是MAC地址,整个发送过程中涉及到每一个节点的MAP
5)HTTP请求网页内容
建立连接后,发送请求报文,想看什么数据。 输入www.baidu.com时,默认请求的是index.html首页文件
请求报文结构:
- 请求行:
①. 请求的方法(get post)
②. 请求的数据信息(默认请求index.html首页文件)
③. 请求http协议版本
tcp协议分为长连接(http1.1)和短连接(http1.0)
2.请求头:
3.空行:
4.请求主体:get方法没有请求主体内容 post方法会有请求主体信息
6)服务器发出相应的访问请求页面的信息(发出http 响应报文)
1.起始行(响应行)
①. HTTP协议版本信息
②. 响应的状态码信息(请求成功状态码 200)
③. 响应状态码说明信息
2.响应头部:
3.空行:
4.响应主体内容:一般为html css js 等等代码信息
7)断开tcp 协议四次握手过程
当客户端和服务器通过三次握手建立了TCP连接以后,当数据传送完毕,肯定是要断开TCP连接的啊。那对于TCP的断开连接,这里就有了神秘的“四次挥手”。