http发送16进制报文_图解HTTP 第三章HTTP报文内的HTTP信息
1、HTTP报文
1)、报文首部
服务器或客户端需处理的请求或响应的内容及属性
2)空行
16进制 0x0a
16进制 0x0d
CR(Carriage Return,回车)‘\n’
LF(Line Feed, 换行符)'\r'
unix只有'\n'
windows包含'\n\r'
mac只有'\r'
3)报文主体
被发送的数据
非必须项
2、请求报文及响应报文的结构
请求
请求行 包含用于请求的方法,请求URI和HTTP版本
响应
状态行 包含响应结果的状态码,原因短语和HTTP版本
都包含:通用首部、请求首部、响应首部和实体首部
可能包含Cookie等
3、编码提升传输速率
牺牲CPU资源来提升传输速率
报文主体和实体主体
请求和响应的实体
HTTP基本单位(8位组字节流)
报文主体
实体主体
传输时进行压缩
gzip(GNU zip)
compress(UNIX系统的标准压缩)
deflate(ZLIB)
identity(不进行编码)
4、发送多种数据的多部分对象集合
图片或文本上传时,报文主体通常包含多类型的实体
multipart/form-data:在 Web 表单文件上传时使用
multipart/byteranges:状态码206(Partial Content 部分内容)响应报文包含了多个范围的内容时使用
boundary 表示分隔符,用于划分多部分对象集合指明的各类实体。在 boundary 字符串指定的各个实体的起始行之前插入“--”标记(例如:--AaB03x、--THIS_STRING_SEPARATES),而在多部分对象集合对应的字符串的最后插入“--”标记(例如:--AaB03x--、--THIS_STRING_SEPARATES--)作为结束
5、获取部分内容的范围请求
为继续获取中断之后的内容,设置“范围请求”
使用首部字段Range指定byte范围
Range:byte=-300,500-600
对于多重范围的范围请求,响应会在首部字段 Content-Type 标明 multipart/byteranges 后返回响应报文。
Range:byte=500-
Range:byte=500-1000
中间范围500-1000字节
500之后的全部
从头开始到300,以及500-600的多范围请求
如果服务器端无法响应范围请求,则会返回状态码 200 OK 和完整的实体内容
6、内容协商返回最合适的内容
内容协商机制是指客户端和服务器端就响应的资源内容进行交涉,然后提供给客户端最为合适的资源。
内容协商会以响应资源的语言、字符集、编码方式等作为判断的基准。
Accepet
Accepet-Charest
Accept-Encoding
Accept-Language
Content-Encoding
下边是xmind图片方便记忆:
http发送16进制报文_图解HTTP 第三章HTTP报文内的HTTP信息相关推荐
- python3.6串口编程实例_Python3 串口接收与发送16进制数据包的实例
Python3 串口接收与发送16进制数据包的实例 如下所示: import serial import string import binascii s=serial.Serial('com4',9 ...
- java串口发送16进制数据_MFC串口通信发送16进制数据的方法
本文实例为大家分享了MFC串口通信发送16进制数据的具体代码,供大家参考,具体内容如下 MFC串口通信会使用m_mscomm控件. 发送数据一般是在edit control 里输入自己想发送的内容,然 ...
- 使用串口调试助手发送16进制数
发送16进制的1(即0x01),应该写01,不能去掉前面的0,更不能写成0x01
- matlab上位机串口通信中如何发送16进制数,而不是当做ASCII字符发送(已实测成功)
转载 (找了很长时间,朋友帮忙找到了发送方法) https://zhidao.baidu.com/question/383761631.html 用matlab发送16进制数据,可以用fwrite直接 ...
- 串口调试助手 发送16进制与现实16进制数据
话不多说,直接干货. 使用串口助手发送16进制数据: 如图所示:第一步,选中16进制发送. 第二步:输入你要发送的数据(所有的16进制数据去掉0x符号) 第三步:点击16进制显示 第四步:查看返回值 ...
- esp32的uart串口发送16进制通信指令调用实例
esp32的uart串口发送16进制通信指令调用实例 简介 最近想用esp32通过uart发送的16进制指令来控制一个语言播放模块,记录一下调用uart的过程,请大佬斧正.比较愚笨,过程中踩了很多坑, ...
- python socket发送16进制数据_Python UDP Socket 16进制数据发送
注:此篇文章首次发表于我的一篇CSDN博客里边,现转载于此. 今天琢磨了一下Python UDP Socket 16进制数据发送. 原以为UDP发送和接受的都是字符,怎么能够发送16进制?但细想,其实 ...
- STM32串口发送16进制数据
方法一(用printf函数) 下面演示两个示例 //说明:用u8或unsigned char都能正常发送//示例 1 u8 send1=0x55; printf("%c",send ...
- http发送16进制报文_阿里云物联网平台使用心得(25)MQTT协议详解UNSUBSCRIBE报文...
题目 大家好,超子又和大家见面了,超子我能力有限,水平不高,有什么错误的地方,欢迎板砖.超子今天给大家介绍一下UNSUBSCRIBE报文. UNSUBSCRIBE报文 从上图中可知,UNSUBSCRI ...
最新文章
- lua创建文件和文件夹
- UVa 10652 (简单凸包) Board Wrapping
- HMAC-SHA1加密
- 猜数字游戏python程序_python经典小程序:猜数字游戏
- mysql可以使用mybaties框架吗_搭建一个简单的mybatis框架
- Bean的自动装配Autowiring
- python报表自动化系列 - 获取某个时间段内所有日期
- LibFewShot:小样本学习与细粒度分类(二) -- 数据集、训练、测试
- python(三):时间窗口
- day 05 random time sys os pickle json re模块 爬取dytt
- ppt在服务器上打开要修复,打开ppt提示需要修复怎么办-处理ppt总是提示需要修复的方法 - 河东软件园...
- 一招判断云主机IP是不是原生IP
- 解释一下label中的写法:plt.plot(t, sig, b-, linewidth=2, label=r$\sigma(t) = \frac{1}{1 + e^{-t}}$)...
- 公积金总结(一)--公积金概念
- USB_HID协议基础
- android ndk x86 arm,NDK r21编译FFmpeg 4.2.2(x86、x86_64、armv7、armv8)
- Jlink在ADS下的配置说明及常见问题解决办法 (转载)
- git bush如何上传文件
- hadoop与传统数据库的区别
- 20道高频面试题(含答案),手慢无
热门文章
- Win10笔记本电脑如何开启热点
- Win10电脑如何查看电脑配置
- Andriod:serializer序列化器生成xml文件
- 常见移动机器人轮直径校准
- mysql可重复读和间隙锁_解决MySQL可重复读——详解间隙锁
- 阿里开发者们的第15个感悟:做一款优秀大数据引擎,要找准重点解决的业务场景...
- 图像滤镜艺术---(Instagram)1977滤镜
- eclipse-阶段四-Server Tomcat v8.5 Server at localhost failed to start.
- 关于视频监控线缆的常识
- MediaElement 4.1.3 发布,HTML5 音视频解决方案