8.7笔记(http和https)

http的响应过程

http和https的区别

HTTP是服务器和客户端请求和应答标准,主要用于WWW服务器传输超文本到本地浏览器的传输协议

  • 好处:
    1. 通信开销小,简单快速,传输成本低
    2. 结构简单,灵活,易于扩展。报文格式基本上都是body和header
    3. 使用灵活,允许客户端和服务器端传输任意类型的或者任意数据结构的对象
    4. 节约传输时间:多个对象只需要一个连接可传送,不需要传送一个web对象就去创建一个连接
    5. 因为是明文传输数据,方便调试
    6. 因为HTTP是无状态的,就很容易组成集群。也可以通过负载均衡转移到任何一个服务器上。
  • 缺点:
    1. 由于传输数据都是明文,所以容易被窃取数据
    2. 无法验证通信双方的身份,依然在于安全性的问题

HTTPS是以安全为目的的HTTP的通道,HTTPS的安全基础是SSL

  • 优点:
    1. 使用HTTPS可以认证对应的客户端和服务器,确保数据传输的准确性
    2. HTTPS是由SSL和HTTP构建协议的加密传输,比HTTP安全,防止数据再传输过程中不被窃取,改变,确保数据的完整性
    3. HTTPS不是绝对安全的,但是它增加了攻击者的攻击成本
  • 缺点:
    1. HTTPS在握手阶段时间略长
    2. HTTPS的连接缓存不如HTTP高效
    3. SSL提高了一定的成本
    4. HTTPS无法保证绝对的安全

不同点

  1. HTTP协议传输的数据都是未加密的,这样就使HTTP传输隐私数据很不安全。所以就有了SSL协议对HTTP传输的数据进行加密处理,也就是后来的HTTPS
  2. HTTPS需要用到ca证书,HTTP则是免费的
  3. HTTP个HTTPS的连接方式不同,HTTP使用80端口,HTTPS使用的443端口
  4. HTTP的连接简单,还是无状态的;HTTPS是由SSL+HTTP进行加密传输,身份认证

HTTPS的连接方式:

  1. 客户使用HTTPS的URL访问Web服务器,并和web服务器简历SSL连接
  2. web服务器接收到请求后,会把网站的证书信息传给客户端
  3. 客户端的浏览器和web服务器拟定SSL连接的安全等级,也就是信息加密等级
  4. 客户端和服务器达成一致的安全等级,建立会话密钥,并用网站的公钥对密钥加密,并传给服务器
  5. Web服务器利用自己的私钥解出会话密钥
  6. Web利用会话密钥和客户端进行连接

输入URL的执行过程

  1. 输入url

  2. 因为计算机只识别IP地址,所以首先要把URL解析成IP地址(DNS解析)

    DNS解析是一个递归查询的过程:

    ”www.google.com”

    • 在本地服务器查找IP地址
    • 本地域名服务器向根域名服务器发送请求
    • 本地服务器向.com顶级域名服务器发送请求
    • 本地域名服务器向.google.com域名发送请求,找到该域名。并把找到的域名返回给本机服务器
  3. TCP连接:

    HTTP协议是基于TCP协议作为传输层协议,当服务器拿到了IP地址后,客户端会和服务器建立TCP连接(三次握手)

    三次握手主要是为了防止已经失效的请求报文发送给服务器,造成浪费资源。

  4. 浏览器发送HTTP请求

    浏览器会构造http请求报文,并通过TCP协议传送到服务器的指定端口

    请求报文:

    • 请求头:描述浏览器的相关信息
    • 请求行:治党http请求的方法
    • 请求正文:当发送POST或者PUT等请求,都会存在请求正文中
  5. 服务器处理HTTP请求

    服务器处理http请求并返回响应报文

    报文包括:

    • 状态码:1XX,2XX,3XX等
    • 响应头:包含了响应的相关信息
    • 响应正文:服务器返回给了浏览器的文本信息
  6. 浏览器进行页面渲染

    浏览器接收到到服务器发送的报文,并进行html页面,渲染页面

  7. 断开TCP连接(四次挥手)

posted @ 2021-08-07 20:25  今天不摸鱼  阅读(117)  评论(0)    收藏  举报