HTTP常见问题

1. 简述HTTP协议

HTTP协议是超文本传输协议,是基于TCP的协议,默认为80端口。
它的作用是用来规定客户端和服务器的数据传输格式。
是一种用于请求与响应模式的、无状态无连接 的应用层协议。
由于HTTP协议是一种请求-响应模式,所以一般需要关注HTTP请求和HTTP响应

2. HTTP 报文格式

请求报文:请求行 + 请求头(头部行)+ 消息实体
响应报文:状态行 + 响应头(头部行)+ 消息实体
在这里插入图片描述

3. HTTP短链接、长连接

HTTP1.0采用短连接,客户端和服务器每进⾏⼀次HTTP操作,就建⽴⼀次连接,任务结束就结束连接。当客户端每遇到Web资源,浏览器就会重新建⽴⼀个HTTP会话。
⽽从HTTP/1.1起,默认使⽤⻓连接,⽤以保持连接特性。使⽤⻓连接的HTTP协议,会在响应头加⼊这⾏
代码: Connection:keep-alive
在使⽤⻓连接的情况下,当⼀个⽹⻚打开完成后,客户端和服务器之间⽤于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使⽤这⼀条已经建⽴的连接。

4. HTTP 1.0和HTTP 1.1的主要区别是什么?

  1. 在HTTP/1.0中,默认使⽤的是短连接,也就是说每次请求都要重新建⽴⼀次连接。
    HTTP 是基于TCP/IP协议的,每⼀次建⽴或者断开连接都需要三次握⼿四次挥⼿的开销,如果每次请求都要这样的话,开销会比较⼤。
    HTTP 1.1起,默认使⽤⻓连接 ,默认开启Connection: keep-alive
  2. HTTP1.1 相对于 http1.0 还新增请求方法,如 PUT、OPTIONS 等 ;
    (HTTP1.0只有GET、POST、HRAD三种请求方法)(GET - 请求数据,POST - 提交要被处理的数据,HEAD和GET相似但只返回头部信息不返回正文)
  3. HTTP1.1增加了响应报文中的 24个错误状态响应码
  4. 带宽优化: HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了;HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分

5. HTTP2.0的优化

  1. 新的二进制格式:HTTP1.x的解析是基于文本(明文),而HTTP2.0的协议采用了二进制格式,实现方便且健壮,数据紧凑,提升网络吞吐。
  2. 多路复用,大大提升了速度! 做到同一个连接可以并发处理多个请求,而且并发的数量比HTTP1.1大好几个数量级,解决阻塞问题,提升处理效率,
  3. 头部数据压缩:HTTP1.1中会对消息主体进行压缩,但是不会对请求行状态行、请求头压缩,而头部行内容越来越多;HTTP2.0对请求头进行压缩,减小体积
  4. 服务器推送: 当我们对支持HTTP2.0的web 服务器请求数据的时候,服务器会相关的所有资源都发送给浏览器(请求html,自动把css和js一起给到客户端),减少请求次数

6. HTTP2.0的多路复用和HTTP1.X中的长连接复用有什么区别?

HTTP 1.1 为若干个请求排队串行化单线程处理,后面的请求等待前面请求的返回才能获得执行机会,一旦有某请求超时等,后续请求只能被阻塞

HTTP 2.0多个请求可同时在一个连接上并发执行。某个请求任务耗时严重,不会影响到其它连接的正常执行;

7. HTTPS

引入:
HTTP存在安全缺陷:①明文传输,容易被窃听 ②缺乏完整性验证,容易被纂改 。③没有验证对方身份,存在冒充危险

HTTPS其实只是在HTTP协议和TCP层之间增加了一个SSL/TLS的安全传输协议,(TLS是SSL的升级版),
通过 SSL证书可以验证服务器的身份,并为浏览器和服务器之间的通信进行加密
整个传输的加密过程都在新的安全层SSL/TLS中实现,而原来的HTTP层的传输流程保持不变,这样就很好地兼容了旧的HTTP协议,也沿袭了TCP/IP协议族的分层思想。
在这里插入图片描述
缺点:
1.HTTPS 由于需要设计加密以及多次握手,性能方面不如 HTTP
2.SSL 证书需要钱

HTTP 和 HTTPS 的区别 ?

1.端⼝号 :HTTP使⽤端⼝80,⽽HTTPS端⼝为443。
2.安全性和资源消耗: HTTP协议运⾏在TCP之上,所有传输的内容都是明⽂,客户端和服务器端都
⽆法验证对⽅的身份。
3.HTTPS 由于需要设计加密以及多次握手,性能方面不如 HTTP
4.HTTPS需要SSL,SSL 证书需要钱,功能越强大的证书费用越高

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值