访问一个网页中发生了什么?

目录

一:什么是HTTP协议?

二:那么在访问一个网页的过程中发生了什么事?

三:什么是HTTPS?

四:那么在HTTPS点击一个网页中发生了什么?


访问一个网页时基于HTTP协议的,响应也是也基于HTTP协议的,那么什么是HTTP协议

一:什么是HTTP协议?

HTTP协议是基于应用层(TCP/IP四层模型第一层),用于服务器和浏览器之间的超文本传输协议,基于TCP协议的协议,用来规范网络世界的一种规则。

二:那么在访问一个网页的过程中发生了什么事?

  • 浏览器在网址栏输入自己想要访问的服务器时,在应用层的DNS协议解析网址栏里面的内容找到对应的URL地址
  • 在敲击回车后,首先连接到服务器,要通过传输层TCP协议三次握手来建立连接

那么这三次握手过程是怎样的?

第一次:

客户端发送给服务器请求连接 SYN=1 ACK=0 seq=x

第二次“

服务器收到客户端的连接请求 同意 连接返回一个 SYN=1 ACK=Q sep=y ack=x+1

第三次:

客户段收到来自服务器段的同意连接 返回一个 SYN=0 ACK=Q ack=y+1 seq=x+1的状态值

  • 服务器同意连接之后,这时候浏览器就会发送一个HTTP请求的报文

那么这个请求报文中携带着什么呢?

1.第一行是包含了请求方法、URL、协议版本;

2.接下来的多行都是请求首部 Header,每个首部都有一个首部名称,以及对应的值。

3.一个空行用来分隔首部和内容主体 Body

4.最后是请求的内容主体(如果是get请求这部分在URL中)

  • 服务器收到来自浏览器的请求报文,处理完这个请求报文后,会将处理结果放在响应报文中响应给浏览器

那么响应报文中携带着什么?

1.第一行 协议版本 状态码以及描述

2.接下来多行也是首部内容

3.一个空行分隔首部和内容主体

4.最后是响应的内容主体(这就是想给浏览器的东西)

  • 浏览器收到来自服务器的响应报文后,解析后通过HTML呈现在给用户
  • 断开连接听过四次挥手

 

那么在四次挥手中发生了什么?

第一次:

客户端向服务器发来想要断开的连接的请求 FIN=1 ACK=0 的状态

第二次:

服务器收到来自客户端的断开连接的请求,也表示同意断开 就会回应 FIN=1 ACK=1 此时属于半断开状态(因为服务器也有数据发给客户端)

第三次:

服务器想要客户端发起一个断开的请求

FIN=1 ACK=1 代表服务器向客户端发送的始数据已经已经发完

第四次:

客户端收到来自服务器的释放连接的请求后 告诉服务器 自己收到了

FIN=0 ACK=1

 当然这是不安全的,在传输过程中可能会被人窃听到,非法的盗取资源,在这个报文中有人也能恶意修改报文,这就出现了HTTPS

三:什么是HTTPS?

首先他不是协议,它是在协议外面包裹一层安全套SSL让HTTP先和SSL通信然后再让SSL在和TCP通信

四:那么在HTTPS点击一个网页中发生了什么?

大体其实适合上面一样的,说说不一样的把

1.用户通过HTTPS访问一个服务器时候,服务器接收到浏览器的请求就会给浏览器返回  数字证书  颁发的机构  网址  公钥   证书的有效期等等(来证明你访问的服务器是一个官方的服务器)

2.浏览器接收到服务器的回应后判断,有问题报错,没问题就生成一个随机密钥,同时使用证书中的公钥 将加密的数据加密后发送给服务取

3.服务器收到浏览器的数据收,用自己的私钥解密,得到密钥,将响应的内容用密钥加密后发送给浏览器

4.浏览器则使用密钥解密,得到最终的网页内容。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值