用户访问网站流程

用户访问网站流程

1. 首先dns对域名进行解析
2. 客户端和解析得到的IP地址进行三次握手,建立tcp连接
3. 客户端向网站服务器发送http请求报文 
   包含  请求方法 请求行 请求头 空行 请求主体[get方法中没有请求主体,post方法中会有请求主体]
4. 网站服务器向客户端发送http响应报文
   包含 起始行  响应头 空行 响应主体
5. 全部数据传输完毕后,进行四次挥手过程结束整个请求流程  

curl -v 可以看到请求过程

[root@k8s-node2 ~]# curl  -v www.a.com
* About to connect() to www.a.com port 80 (#0)        # 1. 首先dns对域名进行解析
*   Trying 10.0.0.65...
* Connected to www.a.com (10.0.0.65) port 80 (#0)     # 2. 客户端和解析得到的IP地址进行三次握手
> GET / HTTP/1.1                                      # 3. 客户端向网站服务器发送http请求报文 
> User-Agent: curl/7.29.0                             #    请求方法
> Host: www.a.com
> Accept: */*
>                                                     #  4. 空行
< HTTP/1.1 200 OK                                     #  5. 响应主体
< Server: nginx/1.16.1                                # 服务软件信息
< Date: Tue, 04 Aug 2020 13:05:40 GMT                 # 响应时间
< Content-Type: text/html                             # 请求数据类型
< Content-Length: 10                                  # 请求的内容长度 Content-Length 10
< Last-Modified: Sun, 02 Aug 2020 06:22:56 GMT        #  由服务器往客户端发送的 HTTP 头 记录页面最后修改时间
< Connection: keep-alive                              #  保持长连接
< ETag: "5f265bc0-a"                                  #  ETag是一个可以与Web资源关联的记号(token)
< Accept-Ranges: bytes                                #  表示该服务器可以接受范围请求
<                                                     #  空行
10.0.0.65                                             #  6. 响应内容
* Connection #0 to host www.a.com left intact         #  标记处理完成

原文地址:https://www.cnblogs.com/superlinux/p/13436153.html