http的相关问题

一.https原理及流程

HTTPS其实是有两部分组成:HTTP + SSL / TLS,

也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据而HTTP传输的数据都是明文的

  1. 客户端发起请求
  2. 服务端配置证书
  3. 证书传输给客户端, 这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。
  4. 客户端解析证书,并生成一个用于对内容加密的客户端密钥,然后用服务器的公钥对客户端的密钥进行加密
  5. 客户端会发起HTTPS中的第二个HTTP请求,将加密之后的客户端密钥发送给服务器。
  6. 服务器接收到密文后 会用自己的服务端的密钥对密文进行解密, 然后用客户端的密钥对明文加密
  7. 服务端将加密后的密文传输给客户端
  8. 客户端接收到密文 进行解密获取明文

https://www.jianshu.com/p/14cd2c9d2cd2

二.http各个版本的区别

http0.9

最初的版本, 只有一个GET方法

http1.0

  1. 新增了POST和HEAD方法
  2. 每个TCP连接只能发送一个请求, 发送数据完毕,连接就关闭
  3. 头部信息时SCII码,后面数据可为任何形式,服务器回应时,会告诉客户端数据是什么形式,即content-type字段的作用,常见的content-type值有
    Content-Type: text/plain;charset=UTF-8
    content-type: text/html; charset=UTF-8
    Content-Type: text/xml;charset=UTF-8
    content-type: image/jpeg; charset=UTF-8
    content-type: image/png; charset=UTF-8
    content-type: image/gif; charset=UTF-8

http1.1

  1. 新增PUT, PATCH, OPTIONS, DELETE方法
  2. 新增了持久连接, 即TCP不会 默认关闭,可以被多个请求服用,connection: keep-alive, 对于同一个域名, 大多数浏览器允许同时建立6个持久连接并引入了管道机制,在同一个TCP链接里,客户端可以同时发送多个请求,改善HTTP协议效率
  3. 新增24个错误状态码

http2.0

  1. 头部信息和数据体都是二进制
  2. 复用TCP连接,在一个连接里,客户端和浏览器都可以同时发送多个请求或响应,且不用按顺序一一对应
  3. 允许服务器未经请求,主动向客户端发送资源, 即服务器推送
  4. 头部信息压缩

http1.1的长连接和http2.0的多路复用的区别?

http1.1之前一次请求就会建立一次连接,http1.1通过管道化方式实现多个请求串行化共享同一个连接,但是一旦某个请求耗时严重,就导致后面的请求被阻塞,俗称线头阻塞;

http2.0多个请求共享同一个连接,并且是并行的,所有请求不会影响其他请求;

三.一个完整的http请求过程

域名解析 --> 发起TCP3次握手 --> 简历TCP连接后发起HTTP请求 --> 服务器响应HTTP请求 --> 浏览器解析数据,渲染页面

http请求状态码

http请求结构

http请求头各部分含义

常用的请求方法有哪些

  1. get:从服务器请求指定资源,不会产生非幂等的副作用
  2. head: 和get请求一样从服务器获取资源,但是不返回资源的内容部分,只返回服务的响应头
  3. post:用于向服务器提交提交数据,更新资源,会产生非幂等的副作用
  4. put:上传完整的资源到服务进行整体更新
  5. delete:删除指定资源
  6. trace:测试或诊断服务收到的请求信息,所以会返回你发送的请求内容
  7. options:测试服务支持所有请求的方法,返回响应的内容为
  8. patch:和put一样用于对资源的更新,区别如下:
    put是对资源的整体更新,patch是部分更新;
    put只会对已存在的资源进行更新,patch在资源不存在时会创建新的资源;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值