一.浏览器访问网站过程

**.1 .访问流程**

利用DNS协议进行域名解析 --> 建立tcp协议三次握手过程 --> 客户端发出访问网站相应页面请求(发出http协议请求报文) --> 服务端发出相应访问页面的请求信息(发出http) --> 断开tcp协议四次挥手过程

2. 利用DNS协议进行域名解析

DNS称为域名系统,主要作用是负责把域名解析对应的IP地址。就是把www.baidu.com 解析为对应的IP地址 ,有了IP地址就相当于知道百度服务器在哪了,接下来就是去找它。

DNS体系中,查找记录,分为两种查找方式:递归查询和迭代查询。

1、 递归查询:由DNS客户端发起,一级一级的向上提交查询申请,直至查询终止

2、 迭代查询:一般情况下由DNS服务器之间完成,即本地DNS向上一级DNS提交查询,上级DNS并不直接返回查询结果,而是告知DNS应该向哪里去查找。 在真正的DNS查询过程中,是包含递归查询和迭代查询的。无论任何方式的查找过程,在每个环节,都会先查找缓存。DNS服务器如果没有了缓存就失去了意义。。。

请记住查询顺序:

HOSTS表--> 本地DNS -->上层DNS(包括根DNS)

3.建立tcp协议三次握手过程 1)简单说明TCP协议 IP 协议定义了一套自己的地址规则,称为 IP 地址。它实现了路由功能,允许某个局域网的 A 主机,向另一个局域网的 B 主机发送消息。 IP 协议只是一个地址协议,并不保证数据包的完整。如果路由器丢包(比如缓存满了,新进来的数据包就会丢失),就需要发现丢了哪一个包,以及如何重新发送这个包。这就要依靠 TCP 协议。 简单说,TCP 协议的作用是,保证数据通信的完整性和可靠性,防止丢包。

TCP三次握手建立过程简单说明:

1.由客户端(用户)发送建立TCP连接的请求报文,其中报文中包含seq序列号,是由发送端随机生成的。

并且还将报文中SYN字段置为1,表示需要建立TCP连接请求。

2.服务端(就是百度服务器)会回复客户端(用户)发送的TCP连接请求报文,其中包含seq序列号,也是由回复端随机生成的,

并且将回复报文的SYN字段置1,而且会产生ACK验证字段,ACK验证字段数值是在客户端发过来的seq序列号基础上加1进行回复:

并且还会回复ack确认控制字段,以便客户端收到信息时,知晓自己的TCP建立请求已得到了确认。

3.客户端收到服务端发送的TCP建立请求后,会使自己的原有序列号加1进行再次发送序列号,

并且再次回复ACK验证请求,在B端发送过来的seq基础上加1,进行回复;同时也会回复ack确认控制字段,

以便B收到信息时,知晓自己的TCP建立请求已经得到了确认。

**4.**客户端发出访问网站相应页面请求(发出http协议请求报文)

5.断开tcp协议四次挥手过程

当客户端和服务器通过三次握手建立了TCP连接以后,当数据传送完毕,肯定是要断开TCP连接的啊。那对于TCP的断开连接,这里就有了神秘的“四次挥手”。

     第一次挥手:
    Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
    第二次挥手:
    Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
    第三次挥手:
    Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
    第四次挥手:
    Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。

简单来说就是:

  1. 拿url去DNS解析IP地址,(查本地DNS缓存) 2) 浏览器 根据IP地址 80端口,建立tcp连接 3) 发送http请求 (请求行 请求头 请求体) 请求行: 请求方法 url HTTP版本 请求头: 键值对 host: 主机名 user-agent: 客户端浏览器信息 请求体: GET
    POST
    4) 服务器端给客户端发送http响应 状态码: 200 OK
    响应内容: 页面交给浏览器解析

5) 断开tcp连接

二.安装nginx

**1.**先在浏览器上找一个nginx安装包,然后用wget来下载,我下的是1.17.1的安装包

**2.**下载完之后然后用tar -zxvf进行解压,解压到/usr/local/src下面

**3.**在用wget下载yum install openssl openssl-devel zlib zlib-devel pcre pcre-devel和yum install gcc -c++

4在.cd /usr/local/src/nginx-1.17.1

5.在用make按照生成的Makefile进行编译 在make install : 将编译好的二进制文件,安装到系统,复位到响应的位置

**6.**cd /usr/local/nginx/sbin

**7.**在检测配置文件语法是否正确 ./nginx -t

8.进入./nginx

9.ps aux | grep nginx

**10.**setenforce 0

11.在关闭防火墙 systemctl stop firewalld.service

12.最后查看一下自己的ip地址

13.然后在浏览器上输入自己的ip地址 出现这个即表示正确