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

图解HTTP-HTTP报文

参考资料:图解HTTP

HTTP报文

用于HTTP协议交互的信息被称为HTTP报文。请求端的HTTP请求报文,响应端(服务器端)的叫做响应报文。HTTP报文本身是由多行(CR + LF作为换行符)数据行构成的文本。
在这里插入图片描述

请求报文及响应报文的结构

在这里插入图片描述
请求行:包含用于请求的方法,请求URI和HTTP版本。
状态行:包含表明响应结果的状态码,原因短语和HTTP版本。
首部字段:包含表示请求和响应的各种条件和属性的各类首部。一般包含四种:通用首部、请求首部、响应首部、实体首部
其他:可能包含HTTP的RFC里未定义的首部(Cookie等)

编码提升传输速率

通过在传输时编码,能有效的处理哦大量的访问请求,但是编码的操作需要计算机来完成,因此会消耗更多CPU资源。由服务端进行编码客户端接收并负责解码。常用的编码:
gzip(GNU zip)
compress(UNIX系统的标准压缩)
delate(zlib)
identity(不进行编码)

报文

是HTTP通信中的基本单位,由8位字节流组成,通过HTTP传输。

实体

由实体首部和实体主体组成。
在传输的过程中需要对数据进行分块并编码进行传输,分块传输编码会将实体主体分成多个部分快,每一块都会用16进制来来标记快的大小,而实体的最后一块会使用‘0 (CR + LF)’来标记。
HTTP/1.1中存在一种称为传输编码的机制,它可以在通信时按某种编码传输,但是定义作用于分块传输编码中。

MIME(Multipurpose Internet Mail Extensions)

多用途因特网机制,允许处理文本、图片、视频等多个不同类型的数据。
HTTP协议中也采纳了多部分对象集合,发送的一份报文主体内可含有多类实体类型。
multipart/form-data
multipart/byterangs
在使用MIME,需要在首部字段里加上 Content-type.

获取部分内容范围请求

比如要实现指定下载的实体范围。执行范围请求时,会用到首部字段Range来制定byte范围。

Range: bytes=5001-10000

针对范围请求,响应会返回状态码为206 Partial Content的响应报文,响应会在首部字段Content-type表明multipart/byterangs后返回报文。

内容协商返回最适合的内容

同一个Web 网站可能存在多份相同的页面。比如中文和英文,当访问同一个URI的Web 页面显示中文或英文Web页面。这样的机制称为内容协商。
内容协商会以响应资源的语言、字符集、编码方式等作为判断的基准。

  • 服务器驱动协商
    由服务器端进行内容协商。以请求首部字段作为参考,在服务器端自动处理。
  • 客户端驱动协商
    由客户端进行内容协商的方式。
  • 透明协商
    服务器驱动和客户端驱动的结合体,是由服务器和客户端各自进行协商的一种方法。

http://www.kler.cn/a/447826.html

相关文章:

  • Obfuscator使用心得
  • [计算机网络]唐僧的”通关文牒“NAT地址转换
  • ROS1入门教程3:自定义消息
  • windows下搭建本地sofa-registry
  • 【NLP 18、新词发现和TF·IDF】
  • 基于LabVIEW的USRP信道测量开发
  • 硬盘接口模式sata与ahci区别, U盘UEFI GPT与Legacy 启动项区别,硬盘格式MBR和gpt的区别
  • JavaEE 导读与环境配置
  • 【Windows版】opencv 和opencv_contrib配置
  • 大模型+安全实践之春天何时到来?
  • CSS系列(30)-- 逻辑属性详解
  • AI 在商旅产品中的应用
  • 天地图接口Python代码详解
  • 概率论基础知识点公式汇总
  • 基于微信小程序的乡村旅游系统
  • 聊一聊 C#前台线程 如何阻塞程序退出
  • OpenAI 发布会 9 天技术总结
  • springboot中责任链模式之简单应用
  • 《开启微服务之旅:Spring Boot Web开发》(一)
  • Numpy数组索引,切片
  • 2025年西安市科技创新奖励补贴政策一览
  • Android10 rk3399 隐藏截屏功能
  • ISO/IEC 25010:2023 系统和软件的质量模型(产品质量模型)
  • 第二十六周学习周报
  • c语言图书信息管理系统源码
  • YOLOv8改进,YOLOv8引入Hyper-YOLO的MANet混合聚合网络+HyperC2Net网络