Http总结

HTTP

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。使用TCP端口为:80

一次完整http请求的过程

  1. 首先进行DNS域名解析
  2. 三次握手建立 TCP 连接
  3. 客户端向服务器发送请求命令Get /www.xx.xx/ http/1.1
  4. 客户端发送请求头信息
  5. 服务服务器应答器 Http/1.1 200 OK
  6. 返回响应头信息
  7. 服务器向客户端发送数据
  8. 服务器关闭 TCP 连接

请求报文结构

GET /form/entry HTTP/1.1
Host:sample.com
Connection:keep-alive
Content-Type:application/x-www-form-urlencode
Content-Length:32

常见的Header

Expires
Cache-Control
Last-Modified / If-Modified-Since
Etag / If-None-Match
RANGE

HTTP 1.0

请求与响应支持头域
响应对象以一个响应状态行开始
响应对象不只限于超文本
开始支持客户端通过POST方法向Web服务器提交数据,支持GET、HEAD、POST方法
支持长连接(但默认还是使用短连接),缓存机制,以及身份认证

HTTP 1.1

Persistent Connection(keepalive连接)
chunked编码传输
字节范围请求
Pipelining(请求流水线)
请求消息和响应消息都应支持Host头域
新增了一批Request method
HTTP1.1增加了OPTIONS,PUT, DELETE, TRACE, CONNECT方法
缓存处理
HTTP/1.1在1.0的基础上加入了一些cache的新特性,引入了实体标签,一般被称为e-tags,新增更为强大的Cache-Control头。

HTTP 2.0

多路复用(二进制分帧)
头部压缩
随时复位
服务器端推流
优先权和依赖

Https

Hyper Text Transfer Protocol over Secure Socket Layer,安全的超文本传输协议,设计了SSL(Secure Sockets Layer)协议用于对Http协议传输的数据进行加密,保证会话过程中的安全性。
使用TCP端口默认为443

SSL协议加密方式

SSL协议即用到了对称加密也用到了非对称加密(公钥加密),在建立传输链路时,SSL首先对对称加密的密钥使用公钥进行非对称加密,链路建立好之后,SSL对传输内容使用对称加密。
对称加密 速度高,可加密内容较大,用来加密会话过程中的消息。DES、3DES、AES、Blowfish、IDEA、RC5、RC6
公钥加密 加密速度较慢,但能提供更好的身份认证技术,用来加密对称加密的密钥。RSA、ElGamal、背包算法、Rabin(RSA的特例)、迪菲-赫尔曼密钥交换协议中的公钥加密算法、椭圆曲线加密算法)

Https单向认证

  1. 客户端
    发送:
    支持协议版本(例如TSL1.0)
    一个客户端生成的随机数(用于生成对话密钥)
    支持的加密算法
    支持的压缩算法
  2. 服务器 选择加密程度高的加密方式
    回应:
    确认使用的加密通信协议版本(例如TSL1.0)
    一个服务器生成的随机数(用于生成对话密钥)
    确认使用的加密方法(例如RSA)
    服务器证书(里面包括服务其公钥)
  3. 客户端 校验服务端证书是否合法,合法继续,否则警告
    发送:
    对称加密密钥(一个随机数(由上面两个随机数生成)(用于服务器公钥加密,防止窃听))
    编码改变通知(表示随后的信息都将用双方商定的加密方式和密钥发送)
    客户端握手结束通知。
  4. 服务器 使用私钥对加密信息进行解密,获得对称加密的密钥
    回应:
    编码改变通知
    服务器握手结束通知。
  5. 对称加密,确保通讯安全

Https双向认证

  1. 客户端
    发送:
    支持协议版本(例如TSL1.0)
    一个客户端生成的随机数(用于生成对话密钥)
    支持的加密算法
    支持的压缩算法
  2. 服务器 选择加密程度高的加密方式
    回应:
    确认使用的加密通信协议版本(例如TSL1.0)
    一个服务器生成的随机数(用于生成对话密钥)
    服务器证书(里面包括服务其公钥)
  3. 客户端 校验服务端证书是否合法,合法继续,否则警告
    发送:
    自己的证书(公钥)
  4. 服务器 校验客户端证书是否合法,获得客户端公钥
    回应:
    确认使用的加密方案(例如RSA)(客户端公钥进行加密)
  5. 客户端 收到加密方式后,使用私钥进行解密,获取到加密方案
    发送:
    对称加密密钥(一个随机数(由上面两个随机数生成)(用于服务器公钥加密,防止窃听))
    编码改变通知(表示随后的信息都将用双方商定的加密方式和密钥发送)
    客户端握手结束通知。
  6. 服务器 使用私钥对加密信息进行解密,获得对称加密的密钥
    回应:
    编码改变通知
    服务器握手结束通知。
  7. 对称加密,确保通讯安全
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值