关于HTTP协议的那些事儿

HTTP(HyperText Transfer Protocol,超文本传输协议)是浏览器与服务端之间最主要的通信协议。

一个HTTP请求一般由四部分组成:

  1. 请求方法:GET,POST
  2. 请求地址
  3. 请求头:包含一些客户端环境信息,身份验证信息等
  4. 请求体:提交的字符串,表单信息等
    http请求

一个HTTP响应一般由三部分组成

  1. 一个数字和文字组成的状态码
  2. 响应头:包含服务器类型,日期时间,内容类型和长度等
  3. 响应体:服务器返回的字符串,html代码等
    http响应

HTTP状态码

  • 1xx:信息类,表示收到Web浏览器请求,正在进一步处理中
  • 2xx:请求成功
  • 3xx:重定向
  • 4xx:客户端错误,请求有错误
  • 5xx:服务器错误,服务器不能完成对请求的处理

HTTP常见字段

  • Host:客户端发送请求时指定服务器的域名
  • Content-Length:服务端返回数据的长度,单位字节
  • Connection:客户端要求服务器使用TCP持久连接,以便其他请求复用
  • Content-Type:服务端返回的数据格式
  • Accept:客户端请求时,声明自己可以接收的数据格式
  • Content-Encoding:表示服务器返回数据采用的压缩格式
  • Accept-Encoding:客户端请求时,表示可以接受的压缩方法

HTTP(1.1)特性

优点:简单灵活,易于扩展,应用广泛,跨平台,无状态,明文传输
缺点:无状态,明文传输,不安全

无状态:服务器不会记录客户端的状态信息,导致每操作一次都要验证信息
解决无状态问题:在请求和响应报文中写入Cookie信息来控制客户端的状态。
不安全:通信使用明文,内容可能被窃听;不验证身份,可能遭遇伪装;无法证明报文完整性,可能被篡改。
解决不安全问题:HTTPS

HTTP 各个版本的核心改进以及解决的问题

在这里插入图片描述

HTTPS协议

HTTPS协议:在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。

对称加密在加/解密过程中使用同一个密钥,而非对称加密使用不同的密钥进行加/解密。

HTTPS采用对称 加密和非对称加密结合的混合加密方式:

  • 通信建立前采用 非对称加密 交换 会话秘钥
  • 通信过程中采用 对称加密的会话秘钥的方式加密明文数据。客户端通过公钥来加密,服务端利用私钥来解密。

密钥对生成后直接发送给客户端还是会被篡改,此时只能借助第三方来实现了,比如证书机制。

公钥放入一个证书中,该证书包含服务端的信息,比如颁发者、域名、有效期,为了保证证书是可信的,需要由一个可信的第三方来对证书进行签名。这个第三方一般是证书的颁发机构,也称 CA(Certification Authority,认证中心)。

那么这个证书的签名怎么检验真假呢?

证书签名就是将证书信息进行MD5计算,获取唯一的哈希值,然后再利用证书颁发方的私钥对其进行加密生成。

校验过程与之相反,需要用到证书颁发方的公钥对签名进行解密,然后计算证书信息的 MD5 值,将解密后的 MD5 值与计算所得的 MD5 值进行比对,如果两者一致代表签名是可信的。所以要校验签名的真伪,就需要获得证书颁发方的公钥,这个公钥就在颁发方的证书中。

这种通过签名来颁发与校验证书的方式会形成一个可追溯的链,即证书链。处于证书链顶端的证书称为根证书,这些根证书被预置在操作系统的内部。

持续更新 ~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值