
本文共 1388 字,大约阅读时间需要 4 分钟。
HTTP(HyperText Transfer Protocol,超文本传输协议)是浏览器与服务端之间最主要的通信协议。
一个HTTP请求一般由四部分组成:
- 请求方法:GET,POST
- 请求地址
- 请求头:包含一些客户端环境信息,身份验证信息等
- 请求体:提交的字符串,表单信息等
一个HTTP响应一般由三部分组成
- 一个数字和文字组成的状态码
- 响应头:包含服务器类型,日期时间,内容类型和长度等
- 响应体:服务器返回的字符串,html代码等
HTTP状态码
- 1xx:信息类,表示收到Web浏览器请求,正在进一步处理中
- 2xx:请求成功
- 3xx:重定向
- 4xx:客户端错误,请求有错误
- 5xx:服务器错误,服务器不能完成对请求的处理
HTTP常见字段
- Host:客户端发送请求时指定服务器的域名
- Content-Length:服务端返回数据的长度,单位字节
- Connection:客户端要求服务器使用TCP持久连接,以便其他请求复用
- Content-Type:服务端返回的数据格式
- Accept:客户端请求时,声明自己可以接收的数据格式
- Content-Encoding:表示服务器返回数据采用的压缩格式
- Accept-Encoding:客户端请求时,表示可以接受的压缩方法
HTTP(1.1)特性
优点:简单灵活,易于扩展,应用广泛,跨平台,无状态,明文传输
缺点:无状态,明文传输,不安全无状态:服务器不会记录客户端的状态信息,导致每操作一次都要验证信息
解决无状态问题:在请求和响应报文中写入Cookie信息来控制客户端的状态。 不安全:通信使用明文,内容可能被窃听;不验证身份,可能遭遇伪装;无法证明报文完整性,可能被篡改。 解决不安全问题:HTTPSHTTP 各个版本的核心改进以及解决的问题
HTTPS协议
HTTPS协议:在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。
对称加密在加/解密过程中使用同一个密钥,而非对称加密使用不同的密钥进行加/解密。
HTTPS采用对称 加密和非对称加密结合的混合加密方式:
- 通信建立前采用 非对称加密 交换 会话秘钥
- 通信过程中采用 对称加密的会话秘钥的方式加密明文数据。客户端通过公钥来加密,服务端利用私钥来解密。
密钥对生成后直接发送给客户端还是会被篡改,此时只能借助第三方来实现了,比如证书机制。
把公钥放入一个证书中,该证书包含服务端的信息,比如颁发者、域名、有效期,为了保证证书是可信的,需要由一个可信的第三方来对证书进行签名。这个第三方一般是证书的颁发机构,也称 CA(Certification Authority,认证中心)。
那么这个证书的签名怎么检验真假呢?
证书签名就是将证书信息进行MD5计算,获取唯一的哈希值,然后再利用证书颁发方的私钥对其进行加密生成。
校验过程与之相反,需要用到证书颁发方的公钥对签名进行解密,然后计算证书信息的 MD5 值,将解密后的 MD5 值与计算所得的 MD5 值进行比对,如果两者一致代表签名是可信的。所以要校验签名的真伪,就需要获得证书颁发方的公钥,这个公钥就在颁发方的证书中。
这种通过签名来颁发与校验证书的方式会形成一个可追溯的链,即证书链。处于证书链顶端的证书称为根证书,这些根证书被预置在操作系统的内部。
持续更新 ~
转载地址:https://blog.csdn.net/Conradine_Lian/article/details/107223985 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关于作者
