慢慢说计网:HTTP 协议

本文详细介绍了HTTP协议的基本概念、常见状态码及其用途,包括200、301、302的区别,以及HTTP1.0、1.1和2.0的主要区别。还涵盖了多路复用和管道流机制,以及HTTP在实际开发中的应用场景。
摘要由CSDN通过智能技术生成

小Q:什么是 HTTP 协议?

慢慢:HTTP 是一个属于应用层的面向对象的协议,由于其简便,快捷的方式,适用于分布式超媒体信息系统。其特点如下:

  1. 支持客户/服务器模式
  2. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。由于 HTTP 协议简单,使得 HTTP 服务器的程序规模小,通信速度快。
  3. 灵活:HTTP 允许传输任意类型的数据对象。正在传输的类型由 Content-Type 加以标记。
  4. 无状态:HTTP 协议是无状态协议。指对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就比较快。

小Q:HTTP 有哪些常用的状态码?

慢慢:状态码分类:

  • 1xx:表示目前是协议的中间状态,还需要后续请求
  • 2xx:表示请求成功
  • 3xx:表示重定向状态,需要重新请求
  • 4xx:表示请求报文错误
  • 5xx:表示服务器端错误

常用状态码:

  • 200:请求成功
  • 301:永久重定向,会缓存
  • 302:临时重定向,不会缓存
  • 403:服务器禁止访问
  • 404:资源未找到
  • 500:服务器错误
  • 503:服务器繁忙

小Q:301 和 302 的区别是什么?

慢慢:301 和 302 都表示重定向,就是说浏览器拿到服务器返回的状态码后会自动跳转到新的 URL 地址。这个地址可以从响应的 Location 首部获取到。

  • 301 表示旧地址 A 的资源已经被永久地移除,搜索引擎在抓取内容的是由将旧的网址交换为重定向后的网址;
  • 302 表示旧地址 A 的资源还在(仍然可以访问),这个重定向只是临时地从旧地址 A 跳转到地址 B,搜索引擎会抓取新地内容而保存旧的地址。

小Q:HTTP 版本有哪些?

  1. http1.0:默认是短连接,长连接需要设置 keep-alive,不带有 host 域。
  2. http1.1:默认是长连接,增加 HOST 域,有管道机制,分块传输编码。
  3. http2.0:多路复用,二进制流

小Q:什么是管道流机制呢?

慢慢:在 http1.x 阶段,都是基于串行字符流的方式传输数据。由于浏览器的限制,当访问同域下的资源时,浏览器最多开启 6 个线程去请求和处理资源,并且每次请求都是串行的,即一个线程请求一次资源需要等待响应后才能再次请求。

管道机制为了解决上述问题,将多个请求打包成一个请求发送,这样就极大地减少了资源的请求时间。

小Q:什么是多路复用呢?

慢慢:在 http2.0 阶段引入了多路复用机制,其目的也是解决跟管道流一样的问题。有上述知道,每次发送请求时都得要同步阻塞,等待响应结果。

而多路复用就将每个请求的连接用符号表的形式记录下来,然后不用等待收到响应,直接发送下个请求。并且通过一个线程去轮询符号表,从而知道哪个请求得到了响应,再去处理响应的数据。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慢慢编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值