1.用户点击页面发出请求,包括点击或者输入网址等,给浏览器。
2.浏览器会发出TCP连接的请求,通过三次握手和服务器建立连接。
注:http协议是基于tcp/ip协议的,http协议是应用层协议,tcp/ip协议是通信层协议,也就是tcp提供的是通信的管道。
3.服务器通过tcp/ip协议与浏览器建立连接。
4.和服务器的管道通了以后,浏览器会生成http请求格式的数据包。
5.浏览器发送http格式的请求包。
注:完整的http请求信息由3部分组成:请求行、请求头部、请求数据
- 请求行:Request Method(GET、POST、PUT、DELETE等)、Request URL、请求的协议(http1.0、http1.1,现在浏览器大部分默认都是http1.1协议)
- 请求头部:Connection属性、Accept Encoding(服务端可以发送的压缩数据的格式)、Accept Charset等信息
- 请求数据:get请求的话就是空的,post请求里面就会有请求的相关参数和参数值
6.服务器接收到http请求的格式包,然后解析其中的参数。
7.执行请求。
注:这个执行请求,指的是进行一些逻辑操作,查询操作,持久层操作等的。也就是我们开发通常的业务处理。
8.生成http格式的数据包,也就是7步骤的数据的进行一个封装,准备进行响应发送。
9.发送响应数据包。
注:响应报文包括:状态行、响应头部、响应正文
- 状态行:请求协议、状态码、状态码描述 ,比如 HTTP1.1 200 OK
- 响应头部:Content-Type(Server: Apache/2.2.8 PHP/5.2.5)、Content-Length、Content-Charset等信息
- 响应正文:内容可能是html、js、css等等
10.浏览器接受到响应数据包,解析成http格式的数据包。
11.最后浏览器对数据进行渲染,呈现给用户。