一.HTTP报文格式 ,以及工作原理
http协议:超文本传输协议,是应用层的通信协议,通常由客户端发起一个请求,创建一个到服务器指定的端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户的请求。一旦收到请求,服务器就会向客户端返回一个状态,以及返回的内容,如请求的文件。
HTTP工作原理:
1.客户端连接到web服务器
一个HTTP客户端,通常是浏览器,与web服务器的http端口建立一个TCP套接字连接。
2.发送HTTP请求
通过TCP套接字,客户端向web服务器发送一个文本的请求报文,一个请求报文有:
请求行\r\n
请求头部\r\n
\r\n
请求数据\r\n
3.服务器接受请求并返回HTTP响应
服务器read套接字,解析请求文本,定位请求资源。服务器将资源write到套接字,由客户端读取。一个相应文本由:
状态行\r\n
相应头部\r\n
\r\n
响应数据\r\n
4.客户端浏览器解析HTML内容
客户端read套接字,解析响应文本,查看状态码,处理和显示信息
5.断开TCP连接(请求头connection=close)
二.首先是浏览器解析IP地址
1.从URL中解析出域名
2.检查缓存中是否有对应域名的IP
浏览器缓存
本机域名解析文件中
如果缓存中没有对应的IP便发起DNS请求,DNS中获取到IP后返回
三.进行网络请求
1.首先建立一个TCP三次握手
2.请求报文的构建,发起一个HTTP请求报文
3.服务器处理用户的请求
4.返回响应报文
5.客户端浏览器对响应报文的解析,并且渲染页面