HTTP学习笔记3 报文结构 编码 范围请求

http协议之文件上传 boundary RFC1867协议 在原有的基础上添加了对file域的支持,同时限定了form的method必须为POST,enctype必须为multipart/form-data. 实际上enctype最后会转换成Content-Type。 为了方便查看我们写一个页面,然后使用firefox的firebug插件查看network信息和google chrome的debug功能。 ... 阅读详情

HTTP报文:由多行(用CR+LF,回车换行符)数据构成的字符串文本,用于HTTP协议交互的信息。包括请求报文和响应报文两种类型,内部可划分为报文首部和报文主体两部分,通常并不一定要有报文主体。

报文结构:
这里写图片描述
这里写图片描述
首部字段一般包括4种类型:通用首部、请求首部、响应首部和实体首部


报文(message):HTTP通信中的基本单位,由8位组字节流(octet sequence)组成。

实体(entity):作为请求或响应的有效载荷数据(补充项)被传输,其内容由实体首部和实体主体组成。

个人理解是实体一般就是HTTP报文中除去请求行/状态行、请求/响应首部字段、通用字段的那一部分,就像定义描述的那样,其是传输的有效载荷数据

因此报文实体一般等于实体主体,但只有当传输中进行编码操作时,实体主体内容发生变化,其才和报文主体产生差异。

内容编码:指应用在实体内容上的编码,内容编码后文件被压缩,传输更快,由客户端接受并负责解码恢复实体原本信息。(常见的编码格式有:gzip、compress、deflate、identity等)

分块传输编码:把实体主体分块进行编码传输,每一分块都会用十六进制来标记大小,实体主体的最后一个分块会使用“0(CR+LF)”来标记。


多部分对象集合(Multipart):在HTTP报文主体中包含多类型实体,通常是在图片和文件等上传时使用。在HTTP报文中使用多部分对象集合时,需要在首部字段中加上Content-type,并使用boundry字符串来划分多部分对象集合指明的各类实体。boundry字符串指定的各个实体的起始行之前插入“- -”标记,而在多部分对象集合的最后插入“- -”标记作为结束。
multipart/form-data:
这里写图片描述

范围请求:获取指定下载范围实体的请求,通过首部字段Range来指定资源的byte范围。
例如对一份10000字节大小的资源:

Range:bytes=5001-10000
获取5001-10000字节
Range:bytes=5001-
获取5001字节之后
Range:bytes=0-3000,5000-7000
获取多个范围

针对范围请求,响应会返回状态码206 Partial Content的响应报文,对于多重范围的范围请求,响应会在首部字段Content-type中标明multipart/byteranges:
这里写图片描述
这里写图片描述


内容协商:客户端和服务端就响应资源内容进行交涉,提供给客户最合适的资源(不同语言、PC/移动)。内容协商会以语言、字符集、编码等方式判断响应的资源。
用于判断的首部字段:

  • Accept
  • Accept-Charset
  • Accept-Encoding
  • Accept-Language
  • Content-Language

类型:服务器驱动协商(服务器判断)、客户端驱动型协商(客户端选择),透明协商(结合体)

【HTTP协议】HTTP报文以及返回结果的HTTP状态码 一,HTTP报文下的HTTP信息 1.1,HTTP报文 用于HTTP协议交互的信息被称为HTTP报文,客户端的报文叫做请求报文,服务器端的报文叫做响应报文。 HTTP报文是一种很多行(由CR+LF作换行符)数据构成的字符串文本。 HTTP报文大致可分为报文首部和报文主体,之间用空行进行分割,但是,并不一定有报文主体。 1.2,请求报文及响应报文的结构 请求报文: 响应报文 ... 阅读详情

相关推荐

Windows10检查Cuda和cuDNN是否安装成功?

简介:根据上篇博客已经完成了CUDA和cuDNN的安装步骤,完成对其的安装。下面将来检查它们是否安装成功。 1 .首先win+R进入CMD,在命令行输入nvcc -V,如下图所示,则表示cuda已经安装成功。 2 .进入到cuda的安装路径,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite,找到如下两个.exe文件: 首先执行:deviceQuery.exe,查看是否出现如下界面: 然后执行bandwid

jhsignal的博客 14万+

《图解HTTP》阅读笔记

HTTP URI 其中认证信息为可选字段 Cookie HTTP本身为无状态协议,即HTTP不会记录曾经传输过哪些内容 如果用户登录了一个网站,当他跳转到该网站其他页面后,HTTP本身并不能识别他已经登陆过 此时我们需要通过Cookie协议在客户端记录登录信息 如果让服务器记录则负担太大 服务器会在返回报文中加入SET-COOKIE的首部字段,客户端可以保存并在后面的通信中自动发...

firefly 306

私彩视频开奖动画直播源码内部核心技术解析及修改可增加后台操控-持续更新文章!

其实在此很感谢能做出H5开奖系统的码农们,而我本人也喜欢分解此类的东西。 因为特殊原因,该东西本人就不做图片展示,以防他人商业化。 借用开奖摇奖代码首先分解首页index文件。代码如下:(后面持续在原有的作品上添加后台操作) 代码里写的//.....是我的注明代码的所需。 ​ <!DOCTYPE html> <html> <head> <...

yugua3837的博客 5995

资源管理小助手

一:项目介绍 本项目是一个支持多人访问的http服务器,在每一个客户端访问服务器的时候可以对其进行目录内的文件列表展示,并且支持文件下载与文件上传的功能,从而达到一个资源共享的目的。 二:项目流程 1.首先搭建服务器 1)为了保证文件下载与文件上传功能的可靠性,该服务器使用TCP协议。TCP协议是一个面向字节流的,可靠 的,面向连接的传输层协议。它的确认应答机制,校验和,序列号,重发机制以及链接管...

某薛的黑猫 778

IC设计新手必看:如何正确使用去耦电容(decap)避免电源噪声?

本文深入探讨了IC设计中去耦电容(decap)的应用技巧,从核心原理到布局实现,帮助新手工程师有效抑制电源噪声。文章详细解析了MIM、MOM等电容类型的特性与选择策略,并提供了先进的布局技巧和验证方法,特别适用于28nm以下先进工艺的电路设计挑战。

weixin_30555125的博客 114

《机器人学一(Robotics(1))》_台大林沛群 第 3 周 【机械手臂 顺运动学】Quiz 3

的方向,旋转方向与四指弯曲方向相反,为负, α为 -90。的方向,旋转方向与四指弯曲方向相反,为负, α为 -90。bug 的图 要求解的 i 位置有误 两套 题目?B. 第2个 坐标系 的原点位置 不便于 计算;上面的正确,后两题 有误, 不知道问题在哪里。标准部分, 前面的更常用,这种仅作为 了解。还是计算过程中保留两位有效数字 不符合。2、确定 旋转角 α 正负的右手定则。1、确定坐标系方向的右手定则。可相交,距离为 0。A: 右手拇指指向。小数点后两位,不符合。

weixin_46034116的博客 1243

HTTP协议中的Boundary是什么

进行文件上传或提交表单数据时,请求的主体内容被分割为多个部分,每个部分都包含一条头信息和一个实体。由一个字符串组成,并且在请求的内容中使用两个连字符 “-” 前缀。,可以将不同类型的实体组合在一起,并确保它们在传输过程中的正确解析和识别。是一种用于分隔多个实体(如文件、表单字段等)的标识符。类型的请求中,用于将多个部分组合在一起,并指示它们的边界。进行分隔,以便接收方可以正确解析请求。每个部分在内容中都以。Boundary解释。

一名Java语言狂热分子。 5443

Unreal从入门到精通之 UE4 vs UE5 VR性能优化实战

这篇文章分享了UE5 VR项目的性能优化经验。作者通过对比UE4和UE5的VR模板性能,发现UE5默认帧率只有45FPS,远低于UE4的100FPS。主要性能瓶颈来自Lumen全局光照、虚拟阴影贴图等新特性。文章详细列出了12项关键优化设置,包括禁用Lumen、关闭虚拟阴影、使用前向渲染等,并分析了各项调整对性能的影响程度。特别指出删除默认的VolumetricCloud可立即提升5帧。最后建议根据场景需求平衡画质与性能,对于高帧率要求的VR项目,可能需要谨慎使用UE5或关闭其部分高级渲染功能。

TxNet 1383

【HTTP协议】HTTP请求/响应报文结构

文章内容HTTP请求/响应报文结构请求报文 如果觉得有帮助,麻烦动动手指点赞加关注💗💗💗 非常感谢!!! HTTP请求/响应报文结构 请求报文 HTTP 请求报文由请求行、请求头、空行和请求包体(body)组成。如下图所示: 真实示例: GET / HTTP/1.1 Host: www.baidu.com Connection: keep-alive Cache-Control: max-age=0 sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="

fearless的博客 9656

39-高级优化技术:指令调度与乱序执行 - 手把手教你手写CPU

本文介绍了现代处理器设计中提高指令级并行性(ILP)的两种关键技术:指令调度和乱序执行。指令调度分为静态调度(由编译器完成)和动态调度(由硬件完成),后者能更好适应运行时情况但复杂度更高。乱序执行通过动态重排指令顺序提高硬件利用率,其核心组件包括重排序缓冲区、保留站和寄存器重命名。文章提供了保留站的Verilog实现示例,并分析了不同优化技术在性能、硬件开销和功耗方面的权衡。最终指出,CPU设计需根据性能、功耗等需求选择合适的优化技术。

2301_79143213的博客 85

【国产MCU】-认识CH32V307及开发环境搭建

CH32V307是[沁恒](https://www.wch.cn/)推出的一款基于32位RISC-V设计的互联型微控制器,配备了硬件堆栈区、快速中断入口,在标准RISC-V基础上大大提高了中断响应速度。加入单精度浮点指令集,扩充堆栈区,具有更高的运算性能。扩展串口UART数量到8组,电机定时器到4组。提供USB2.0高速接口(480Mbps)并内置了PHY收发器,以太网MAC升级到千兆并集成了10M-PHY模块。

视觉与物联智能 2343

图解HTTP(3、HTTP 报文内的 HTTP信息)

HTTP 通信过程包括从客户端发往服务器端的请求及从服务器端返回客户端的响应。

feng的博客 800

mapbox进阶,dem数据转为等高面,加载转换后的等高面到地图

本文详细介绍如何基于mapbox-gl v3.*.* 版本,使用dem数据转为等高面,加载转换后的等高面到地图,亲测可用。希望能帮助到您。一起学习,加油!加油!

我哎GIS博客 407

第3章——HTTP报文内的HTTP信息

​ 用于HTTP协议交互的信息被称为HTTP报文,分为请求报文和响应报文。分为Head,Body请求行:包含用于请求的方法,请求URI和HTTP版本。状态行:包含表明响应结果的状态码,原因短语和HTTP版本。首部字段:包含表示请求和响应的各种条件和属性的各类首部。一般有4种首部,分别是:通用首部、请求首部、响应首部和实体首部。其他:可能包含HTTP的RFC里未定义的首部(Cookie等)

sjmbahczdszjj666的博客 1221

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

图解HTTP学习笔记5:HTTP报文结构、编码、多部分对象集合、范围请求、内容协商

HTTP报文HTTP报文结构HTTP在传输时编码可以提升传输速率多部分对象集合:可发送多种数据范围请求:获取部分内容内容协商:返回最合适的内容 HTTP报文结构 报文(message) 是HTTP通信中的基本单位,由8位组字节流(octet sequence),其中octet为8个比特)组成,通过HTTP通信传输。 实体(entity) 作为请求或响应的有效载荷数据(补充项)被传输,其内容由实体首部和实体主体组成。 报文主体:是被用来传输请求或响应的实体主体。 通常,报文主体等于实体主体。只有当传输中进

Tuki来了 519

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

HTTP协议的报文内容以及一次完整的HTTP请求流程【一万字】

介绍了HTTP协议的报文内容,以及一次完整的HTTP请求流程。

终生学习践行者 2972

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Http实战之编码、分块传输、范围请求

本系列文章:1、《Http实战之Wireshark抓包分析》2、《Http实战之无状态协议、keep-alive分析》3、《Http实战之缓存、重定向》本文为《Http实战》系列最后一篇,本文主要探讨在使用HTTP协议进行大文件传输时我们经常会使用到的三个特性在介绍这部分内容之前有必要对一个概念进行说明:实体。如果把 HTTP报文想象成因特网货运系统中的箱子,那么 HTTP实体就是报文中实际的货物。下图展示了一个简单的实体,封装在 HTTP 响应报文中。实体首部指出这是一个纯文本文档(Content-Typ

做一个认真的程序员 2133

一篇让你彻底了解http请求报文和响应报文的结构

1.序 用于HTTP协议交互的信息被称为HTTP报文。请求端(客户端)的HTTP报文叫做请求报文,响应端(服务器端)的叫做响应报文。HTTP报文本身是由多行数据构成的字符串文本。HTTP报文大致可分为报文首部和报文主体两块。两者由最初出现的空行来划分。通常,并不一定要有报文主体。 2.请求报文 HTTP的请求报文由四部分组成(请求行+请求头部+空行+请求体): 真实数据 ①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、

Java0258的博客 1229

HTTP 报文内的 HTTP 信息

指定范围发送的请求叫做范围请求(Range Request)。

moyuerrr的博客 641

图解HTTP三:HTTP 报文内的 HTTP 信息

3.1 HTTP 报文 用于 HTTP 协议交互的信息被称为 HTTP 报文。请求端(客户端)的 HTTP 报文叫做请求报文,响应端(服务器端)的叫做响应报文。 HTTP 报文的结构 3.2 请求报文及响应报文的结构 请求报文(上)和响应报文(下)的结构 请求行:包含用于请求的方法,请求 URI 和 HTTP 版本。 状态行:包含表明响应结果的状态码,原因短语和 HTTP 版本。 首部字段:包含表示请求和响应的各种条件和属性的各类首部。一般有 4

神薯片 2801

HTTP | HTTP报文内的HTTP信息

目录 一、HTTP报文 1.请求报文 2.响应报文 二、报文主体和实体主体 三、内容编码(压缩) 四、分块传输编码(分割发送) 五、多部分对象集合(含有多类型实体) 六、范围请求(中断后继续下载) 七、内容协商 一、HTTP报文 用于 HTTP 协议交互的信息被称为 HTTP 报文。请求端(客户端)的 HTTP 报文叫做请求报文,响应端(服务器端)的叫做响应报文。 HTTP 报文本身是由多行(用 CR + LF 作换行符,windows端即\r\n)数据构成的字符串文本...

该用户还没想到好的昵称的博客 1959

带你详解 HTTP 协议(七):HTTP 报文实体

1. HTTP 报文实体概述 HTTP 报文结构 大家请仔细看看上面示例中,各个组成部分对应的内容。 接着,我们来看看报文和实体的概念。如果把 HTTP 报文想象成因特网货运系统中的箱子,那么 HTTP 实体就是报文中实际的货物。 报文:是网络中交换和传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。 实体:作为请求或响应的有效载荷数据(补充项)被传输,其内容由实体首部和实体主体组成。(实体首部相关内容在上面第六点中已有阐述。) 我们

Cai_deLong的博客 1834

java 判断请求报文完成_HTTP(3):HTTP报文内的HTTP信息

HTTP报文用于HTTP协议交互的信息被称为报文。HTTP报文大致可分为报文首部和报文主体,两者由最初出现的空行(CR+LF)来划分。通常,并不一定要有报文主体。报文首部:服务器端或客户端需要处理的请求或响应的内容及属性。CR+LF:CR(Carriage Return,回车符)LF(Line Feed,换行符)报文主体:应被发送的数据。编码提升传输速率HTTP传输数据是可以原样传输,也可以进行编...

weixin_29663547的博客 602

3、HTTP请求报文和响应报文是怎样的,有哪些常见的字段?【中高频】

HTTP请求报文和响应报文是怎样的,有哪些常见的字段?

2402_84438596的博客 1351
上一篇: HTTP学习笔记2 http方法 Cookie
下一篇: HTTP学习笔记4 状态码
PAT-python-zjw
博客等级 码龄10年 381粉丝 408原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值