http和https问题汇总

http和https问题汇总

1. http与https工作方式

  1. http包含如下动作:

① 浏览器打开一个TCP连接;

② 浏览器发送HTTP请求到服务器;

③ 服务器发送HTTP回应信息到服务器;

④ TCP连接关闭

  1. SSL包含如下动作:

① 验证服务器端;

② 允许客户端和服务器端选择加密算法和密码,确保双方都支持;

③ 验证客户端;

④ 使用公钥加密技术来生成共享加密数据;

⑤ 创建一个加密的SSL连接;

⑥ 基于该SSL连接传递HTTP请求;

2、http协议,http和https的区别

HTTP和HTTPS的基本概念

HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

3、HTTPS和HTTP的区别

HTTPS和HTTP的区别主要如下:

  • https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
  • http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
  • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  • http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
  • 在OSI模型中,HTTP工作于应用层,而HTTPS工作于传输层;

4、http状态码

  • 1XX 信息码,服务器收到请求,需要请求者继续执行操作;
  • 2XX 成功码,操作被成功接收并处理;
  • 3XX 重定向,需要进一步的操作以完成请求;
  • 4XX 客户端错误,请求包含语法错误或无法完成请求;
  • 5XX 服务器错误,服务器在处理请求的过程中发生了错误

404 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面

5、HTTP1.0与HTTP1.1的区别?

  1. HTTP1.0需要使用keep-alive参数来告知服务器要建立一个长连接,而HTTP1.1默认支持长连接;

  2. HTTP 1.1支持只发送header信息(不带任何body信息),如果服务器认为客户端有权限请求服务器,则返回100,否则返回401;

  3. HTTP1.0是没有host域的,HTTP1.1才支持这个参数;

6、HTTP2.0和HTTP1.X的区别

1.新的二进制格式(Binary Format):
HTTP1.x的解析是基于文本。(文本的表现形式有多样性,要考虑的场景很多才能做到健壮性)

基于这种考虑HTTP2.0的协议解析决定采用二进制格式,实现方便且健壮。

2.HTTP2.0比HTTP1.0有路复用(MultiPlexing):
即连接共享,即每一个request都是是用作连接共享机制的。一个request对应一个id,这样一个连接上可以有多个request,每个连接的request可以随机的混杂在一起,接收方可以根据request的 id将request再归属到各自不同的服务端请求里面。

3.header压缩:
HTTP1.x的header带有大量信息,而且每次都要重复发送,

HTTP2.0使用encoder来减少需要传输的header大小,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小。

4.服务端推送(server push):
HTTP2.0也具有server push功能。

补充:

最早http建立的连接无法复用,就是一次数据传输之后立即断开,后来使用keep-alive保活。但是请求只有在服务应答之后才能发送后续请求在客户端形成阻塞。后来使用管道化http pipeling技术,使得客户端可以一次发送多个请求,但是对于服务端的第一个资源无法返回的时候,也会形成服务端阻塞。虽然可以服务端和客户端建立多个连接,但是也需要多次3次握手。
http1.x的问题在于:
1、线头阻塞问题:无论是服务端还有客户端都会有请求资源的阻塞问题。
2、冗余头部字段:http1.x的头部都采用文本格式,未压缩,并且每次都会发送重复的字段。
3、只有客户端发送请求,服务方才会应答。

http2.x改进:
1、采用二进制协议编码,传输的是二进制格式传输数据。响应分为header和data两个帧。
2、头部字段会保存在客户端和服务端,动态添加,避免重复发送。
3、多路复用:支持多个请求在一个连接中完成,也不会由因为某个包的延迟而导致整体链路的阻塞。
4、服务端会主动根据请求分析,客户端是否需要其他资源,主动发送。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值