HTTP与HTTPS

HTTP请求报文和响应报文

请求报文:请求行(请求方法+HTTP版本+)、首部字段(keep-alive、编码格式、日期)、空行、报文主体
响应报文:响应行(HTTP版本+状态码+原因短语)、首部字段(日期、编码格式)、空行、报文主体

HTTP请求方法

  • PUT和POST的区别?

PUT请求:如果两个请求相同,后一个请求会把第一个请求覆盖掉。(所以PUT用来改资源)
Post请求:后一个请求不会把第一个请求覆盖掉。(所以Post用来增资源)

  • POST和GET的区别?
    GET参数通过URL传递,POST放在Request body中。
    GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
    GET是幂等的,POST不是幂等的

HTTP的请求过程

客户端和web服务器建立连接(TCP连接)------>客户端发送HTTP请求(请求报文)------>服务器获取请求发送响应数据(响应报文)------>释放掉TCP连接------>客户端解析HTML内容。

HTTP状态码

  • 200 ok 、204 No Content 、206 partial content 表示发送成功
  • 301 moved permanently(永久性重定向) 、302 found(临时性重定向) 303 see other 表示重定向 304 not modified未符合条件的请求
  • 400 bad request 、401 unauthorized、403 forbidden 、404 not found 客户端错误
  • 500 网络服务错误、 503 service unavailable

HTTP1.0和HTTP1.1的区别

  1. HTTP1.1支持长连接(keep-alive)
  2. HTTP1.1支持只发送头部信息。如果服务器认为客户端有权限 请求服务器,则返回 100,否则返回 401。客户端如果接受到 100,才开始把请求 body 发 送到服务器。这样当服务器返回 401 的时候,客户端就可以不用发送请求 body 了,节约了 带宽。
  3. host 域 http1.0 没有 host 域,http1.1 才支持这个参数。在这里插入图片描述 host域是一个首部字段,当我们解析某个域名的IP地址,如果此ip地址映射了两个域名,那么我们访问的时候,应该访问那个呢?所以host域就需要标识域名。

HTTP2.0和HTTP1.0的区别

  1. 多路复用
    即连接共享,建立起一个连接请求后,可以在这个链接上一直发送,不 要等待上一次发送完并且受到回复后才能发送下一个(http1.0 是这样),是可以同时发送多个请求, 互相并不干扰。

  2. 压缩头部

  3. 服务端推送 ,就是客户端请求 html 的时候,服务器顺带把此 html 需要的 css,js 也一起发送给客户端,而不像 http1.0 中需要请求一次 html,然后再请求一次 css,然后再请求一 次 js。

HTTP与HTTPS的区别有哪些?

HTTP是无状态的协议,同时会明文传送报文、无法保证报文的完整、同时无法进行身份认证。
HHTPS是为了解决以上的问题而诞生的协议。
HTTP的端口是80,HTTPS的端口是443
HTTPS由于加密和简历SSL相对于HTTP会比较费时
HTTPS协议需要到证书颁发机构CA申请证书,HTTP不用申请证书;

HTTPS的加密过程

在这里插入图片描述
上面这张图片已经清楚的展示了HTTPS工作的流程。

1.[Server]生成一对密钥:公钥和私钥,我们称之为“KeyPub”,“KeyPri”
2.[Server]服务端将公钥(KeyPub)发送到客户端
3.[Client]生成一个对称密钥(姑且称之为key2),然后用key2加密数据。
4.[Client]使用公钥(KeyPub)加密key2.这时,key2是安全的,因为只有服务度有私钥KeyPri
5.[Client]发送用key2加密后的信息及用KeyPub加密过的key2到服务端
6.[Server]服务端使用KeyPri解密得到加密过的key2,得到真正的key2
7.[Server]使用key2解密消息正文。这样,数据就被安全的传输到了服务端。
https是如何工作的

HTTPS的请求过程

https的请求过程
1.浏览器向服务器发起请求,
2.服务器收到请求, 将数字证书和公钥发给浏览器
4.浏览器进入数字证书的认证环节,同时生成一个对称密钥,对数据进行加密,然后公钥对对称密钥加密发给服务器
5.服务器通过自己的私钥解密得到数据,同时得到了对称密钥。
6服务器通过对称密钥将使用了对称加密算法的加密网页内容传输给浏览器
7.浏览器以R为密钥使用之前约定好的解密算法获取网页内容

为什么不一直使用HTTPS

HTTPS的加密解密会耗费cpu资源,同时耗费的时间是HTTP的2-100倍。
证书是需要收费的,对于不敏感的数据不需要使用HTTPS。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值