当前位置: 首页 > news >正文

http进一步认识

好久不见各位,今天为大家带来http协议的进一步认识

文章目录

  • 👀http协议的认识
  • 👀新的改变

👀http协议的认识

http协议经历了三个版本的演化,HTTP0.9是第一个版本的协议,它的组成极其简单,只涉及到简单的发送get请求,只允许客户端发送get请求,且不支持请求头,由于没有协议头,造车了http0.9协议只支持一种内容,即纯文本,但是网页仍然支持html语言格式化,同时无法插入图片。
http具有典型的无状态性,每一个事务都是独立处理的,什么是无状态呢? 无状态是指协议对于事务处理没有记忆功能。 缺少状态意味着,假如后面的处理需要前面的信息,则前面的信息必须重传,这样可能导致每次连接传送的数据量增大。 另一方面,在服务器不需要前面信息时,应答就较快。它的请求和连接过程如下
一次HTTP0.9的传输首先要建立一个由客户端到web服务器的tcp连接,由客户端发起一个请求,然后由web服务器返回页面内容,然后连接会关闭。如果请求的页面不存在,也不会返回任何错误

2、HTTP 1.0

HTTP协议的第二个版本,第一个在通讯中指定版本号的HTTP协议版本,至今仍被广泛采用。相对于HTTP 0.9 增加了如下主要特性:
请求与响应支持头域
响应对象以一个响应状态行开始
响应对象不只限于超文本
开始支持客户端通过POST方法向Web服务器提交数据,支持GET、HEAD、POST方法
支持长连接(但默认还是使用短连接),缓存机制,以及身份认证,

3.HTTP 1.1
这个是http协议的第三个版本,是目前使用的最广泛的协议版本 ,HTTP 1.1引入了许多关键性能优化:keepalive连接,chunked编码传输,字节范围请求,请求流水线等

  • Persistent Connection(keepalive连接)
    允许HTTP设备在事务处理结束之后将TCP连接保持在打开的状态,一遍未来的HTTP请求重用现在的连接,直到客户端或服务器端决定将其关闭为止。

在HTTP1.0中使用长连接需要添加请求头 Connection: Keep-Alive,而在HTTP 1.1 所有的连接默认都是长连接,除非特殊声明不支持( HTTP请求报文首部加上Connection: close )

  • chunked编码传输
    该编码将实体分块传送并逐块标明长度,直到长度为0块表示传输结束, 这在实体长度未知时特别有用(比如由数据库动态产生的数据)

  • 字节范围请求
    HTTP1.1支持传送内容的一部分。比方说,当客户端已经有内容的一部分,为了节省带宽,可以只向服务器请求一部分。该功能通过在请求消息中引入了range头域来实现,它允许只请求资源的某个部分。在响应消息中Content-Range头域声明了返回的这部分对象的偏移值和长度。如果服务器相应地返回了对象所请求范围的内容,则响应码206(Partial Content)

  • Pipelining(请求流水线)

👀新的改变

HTTP 1.1还新增了如下特性:
1.请求消息和响应消息都应支持Host头域
2.新增了一批Request method,增加了OPTIONS,PUT, DELETE, TRACE, CONNECT方法,引入了实体标签,一般被称为e-tags,新增更为强大的Cache-Control头。

HTTP 2.0是下一代HTTP协议,目前应用还非常少,这里就不做介绍了~

http://www.lryc.cn/news/217411.html

相关文章:

  • grafana docker安装
  • 【Kubernetes】初识k8s--扫盲阶段
  • “01”滴答“摩尔斯电码”加密解密单个字符
  • P3817 小A的糖果
  • Yolov8目标识别与实例分割——算法原理详细解析
  • HandlerMethodArgumentResolver方法参数解析器支持多用户
  • 【Linux】 man命令使用
  • 同一个数据库服务器进行数据表间的数据迁移-MySQL
  • 适用于 Linux 的 WPF:Avalonia
  • 【教3妹学编程-算法题】数组中两个数的最大异或值
  • STM32-RTC实时时钟
  • 初学Flutter,实现底部导航切换
  • 使用JMeter进行接口压力测试
  • ElasticSearch集群架构实战及其原理剖析
  • 选择适合你的办公桌:提高工作效率的关键
  • 机器学习之多层感知机 MLP简洁实现 《动手深度学习》实例
  • 使用C#在Windows上调用7-zip压缩文件
  • 京东数据平台:2023年Q3季度黄金市场数据分析
  • https原理
  • FFmpeg直播能力更新计划与新版本发布
  • 面试算法55:二叉搜索树迭代器
  • Linux Crontab 定时任务
  • HiveSQL高级进阶技巧
  • 【Flutter】Flutter 动画深入解析(1):掌握 AnimationController 的使用
  • 安装富文本组件
  • Tomcat下载地址(详细)
  • 领星ERP如何无需API开发轻松连接OA、电商、营销、CRM、用户运营、推广、客服等近千款系统
  • Django实战项目-学习任务系统-自定义URL拦截器
  • [已解决]该主机与 Cloudera Manager Server 失去联系的时间过长。 该主机未与 Host Monitor 建立联系。
  • 通过在Z平面放置零极点的来设计数字滤波器