HTTP消息由客户端到服务器的请求和服务器到客户端的响应组成。
请求消息和响应消息都是由开始行(对于请求消息,开始行就是请求行,对于响应消息,开始行就是状态行),
消息报头(可选),空行(只有CRLF的行),消息正文(可选)组成。
HTTP消息报头包括普通报头、请求报头、响应报头、实体报头。
每一个报头域都是由名字+“:”+空格+值 组成,消息报头域的名字是大小写无关的
头标由主键/值对组成。它们描述客户端或者服务器的属性、被传输的资源以及应该实现连接
1.通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联。
2.请求头标:允许客户端传递关于自身的信息和希望的响应形式。
3.响应头标:服务器和于传递自身信息的响应。
4.实体头标:定义被传送资源的信息。即可用于请求,也可用于响应。
1、普通报头 (General Header)
在普通报头中,有少数报头域用于所有的请求和响应消息,但并不用于被传输的实体,只用于传输的消息
对请求头域的扩展要求通讯双方都支持,如果存在不支持的请求头域,一般将会作为实体头域处理
Cache-Control
Connection
Date
Pragma
Transfer-Encoding
Upgrade
Via
2、请求报头 (Request Headers)
请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息
对请求头域的扩展要求通讯双方都支持,如果存在不支持的请求头域,一般将会作为实体头域处理
Accept
Accept-Charset
Accept-Encoding
Accept-Language
Authorization
Host
User-Agent
From
If-Modified-Since
If-Match
If-None-Match
If-Range
If-Unmodified-Since
Max-Forwards
Proxy-Authorization
Range
Referer
3、响应报头 (Response Headers)
响应报头允许服务器传递不能放在状态行中的附加响应信息,
以及关于服务器的信息和对Request-URI所标识的资源进行下一步访问的信息
对响应头域的扩展要求通讯双方都支持,如果存在不支持的响应头域,一般将会作为实体头域处理
Location
Server
WWW-Authenticate
Age
Proxy-Authenticate
Public
Retry-After
Vary
Warning
4、实体报头 (Entity Header)
请求和响应消息都可以传送一个实体。一个实体由实体报头域和实体正文组成,
但并不是说实体报头域和实体正文要在一起发送,可以只发送实体报头域。
实体报头定义了关于实体正文(eg:有无实体正文)和请求所标识的资源的元信息
Content-Encoding
Content-Language
Content-Length
Content-Type
Last-Modified
Expires
Allow
Content-Base
Content-Location
Content-MD5
Content-Range
Etag
extension-header
Accept
客户端可以处理的媒体类型,按优先级排序,在一个以逗号为分隔的列表中,可以定义多种类型和使用通配符。
Accept: image/jpeg,image/png,*/*
Accept-Language
客户端接受的语言列表。
Accept-Language: zh-cn,zh;q=0.5
Accept-Ranges
一个响应头标,它允许服务器指明:将在给定的偏移和长度处,为资源组成部分的接受请求。
该头标的值被理解为请求范围的度量单位。
Accept-Ranges: bytes
Accept-Ranges: none
Accept-Encoding
客户端编码。
Accept-Encoding: gzip,deflate
Accept-Charset
客户端可以处理的字符集,按优先级排序,在一个以逗号为分隔的列表中,可以定义多种类型和使用通配符。
Accept-Charset: iso-8859-1,*,utf-8
Age
允许服务器规定自服务器生成该响应以来所经过的时间长度,以秒为单位。
该头标主要用于缓存响应。
Age: 30
Allow
一个响应头标,它定义一个由位于请求URI中的次源所支持的HTTP方法列表。
Allow: GET,PUT
Authorization
一个响应头标,用于定义访问一种资源所必需的授权(域和被编码的用户ID与口令)。
Authorization: Basic YXV0aG9yOnBoaWw=
Cache-Control
缓存机制。
在请求消息或响应消息中设置 Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。
请求时的缓存指令包括no-cache、no-store、max-age、 max-stale、min-fresh、only-if-cached,
响应消息中的指令包括public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age。
Cache-Control: max-age=3600
各个消息中的指令含义如下:
Public
指示响应可被任何缓存区缓存。
Private
指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。
这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。
no-cache
指示请求或响应消息不能缓存
no-store
用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。
max-age
指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。
min-fresh
指示客户机可以接收响应时间小于当前时间加上指定时间的响应。
max-stale
指示客户机可以接收超出超时期间的响应消息。
如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。
Content-Length
表示实际传送的字节数
只有当浏览器使用持久HTTP连接时才需要这个数据
Content-Encoding
文档的编码(Encode)方法。只有在解码之后才可以得到Content-Type头指定的内容类型。
利用gzip压缩文档能够显著地减少HTML文档的下载时间
Connection
是否保存socket连接为开放。
Connection: close
Connection: keep-alive
Cookie
网站cookie
Cookie: PHPSESSID=d2f86046854e13ca02d9eef6c2dcb826
Content-Type
用于向接收方指示实体的介质类型
Content-Type: text/html
Content-Base
一种定义基本URI的实体头标,为了在实体范围内解析相对URLs。
如果没有定义Content-Base头标解析相对URLs,使用Content-Location URI(存在且绝对)或使用URI请求。
Content-Base: Http://www.myweb.com
Content-Location
指定包含于请求或响应中的资源定位(URI)。
对URL也作为被解析实体的相对URL的出发点。
Content-Location: http://www.myweb.com/news
Content-MD5
实体的一种MD5摘要,用作校验和。
发送方和接受方都计算MD5摘要,接受方将其计算的值与此头标中传递的值进行比较。
Content-Range
随部分实体一同发送;标明被插入字节的低位与高位字节偏移,也标明此实体的总长度。
Content-Range: 1001-2000/5000
Date
Date头域表示消息发送的时间,时间的描述格式由rfc822定义。
Date描述的时间表示世界标准时,换算成本地时间,需要知道用户所在的时区
Date: Fri, 05 Dec 2008 03:17:21 GMT
Expires
指定实体的有效期, 过期时间
Expires: Mon,05 Dec 2008 12:00:00 GMT
ETag
一种实体头标,它向被发送的资源分派一个唯一的标识符。
对于可以使用多种URL请求的资源,ETag可以用于确定实际被发送的资源是否为同一资源。
ETag: '208f-419e-30f8dc99'
Form
一种请求头标,给定控制用户代理的人工用户的电子邮件地址。
From: webmaster@myweb.com
Host
被请求资源的主机名。对于使用HTTP/1.1的请求而言,此域是强制性的。
Host: www.myweb.com
If-Modified-Since
记录页面最后修改时间,客户端往服务器发送
If-Modified-Since: Wed, 03 Dec 2008 03:39:18 GMT
If-Unmodified-Since
只有自指定的日期以来,被请求的实体还不曾被修改过,才会返回此实体。
If-Unmodified-Since: Mon,10PR 18:42:51 GMT
If-Match
如果包含于一个请求,指定一个或者多个实体标记。只发送其ETag与列表中标记区配的资源。
If-Match: '208f-419e-308dc99'
If-None-Match
资源的ETag不与列表中的任何一个条件匹配,操作才执行。
If-None-Match: "502d78280-2cc2-45d1c30522580"
If-Range
指定资源的一个实体标记,客户端已经拥有此资源的一个拷贝。必须与Range头标一同使用。
如果此实体自上次被客户端检索以来,还不曾修改过,那么服务器只发送指定的范围,否则它将发送整个资源。
Range: byte=0-499
If-Range: '208f-419e-30f8dc99'
Keep-Alive
持续连接,出现后继请求时,避免建立或者重新建立连接。
Keep-Alive: 300
Last-Modified
指定被请求资源上次被修改的日期和时间。
Last-Modified: Mon,10PR 18:42:51 GMT
Location
对于一个已经移动的资源,用于重定向请求者至另一个位置。
与状态编码302(暂时移动)或者301(永久性移动)配合使用。
Location: http://www2.myweb.com/index.jsp
Max-Forwards
一个用于TRACE方法的请求头标,以指定代理或网关的最大数目,该请求通过网关才得以路由。
在通过请求传递之前,代理或网关应该减少此数目。
Max-Forwards: 3
Pragma
用来包含实现特定的指令,最常用的是Pragma:no-cache。
在HTTP/1.1协议中,它的含义和Cache-Control:no-cache相同
Proxy-Authenticate
类似于WWW-Authenticate,便是有意请求只来自请求链(代理)的下一个服务器的认证。
Proxy-Authenticate: Basic realm-admin
Proxy-Proxy-Authorization
类似于授权,但并非有意传递任何比在即时服务器链中更进一步的内容。
Proxy-Proxy-Authorization: Basic YXV0aG9yOnBoaWw=
Public
列表显示服务器所支持的方法集。
Public: OPTIONS,MGET,MHEAD,GET,HEAD
Range
指定一种度量单位和一个部分被请求资源的偏移范围。
Range: bytes=206-5513
Refener
一种请求头标域,标明产生请求的初始资源。对于HTML表单,它包含此表单的Web页面的地址。
Refener: http://www.myweb.com/news/search.html
Retry-After
一种响应头标域,由服务器与状态编码503(无法提供服务)配合发送,以标明再次请求之前应该等待多长时间。
此时间即可以是一种日期,也可以是一种秒单位。
Retry-After: 18
Server
服务器名字
Server: Apache/2.2.9 (Win32) PHP/5.2.6
Transfer-Encoding
一种通用头标,标明对应被接受方反向的消息体实施变换的类型
当不能预先确定报文体的长度时,不可能在头中包含Content-Length域来指明报文体长度,
此时就需要通过Transfer-Encoding域来确定报文体长度。
通常情况下,Transfer-Encoding域的值应当为chunked,表明采用chunked编码方式来进行报文体的传输。
chunked编码是HTTP/1.1 RFC里定义的一种编码方式,因此所有的HTTP/1.1应用都应当支持此方式。
chunked编码的基本方法是将大块数据分解成多块小数据,每块都可以自指定长度
Transfer-Encoding: chunked
User-Agent
用户浏览器信息,定义用于产生请求的软件类型(典型的如Web浏览器)
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4
Upgrade
允许服务器指定一种新的协议或者新的协议版本,与响应编码101(切换协议)配合使用。
Upgrade: HTTP/2.0
Vary
用于表示使用服务器驱动的协商从可用的响应表示中选择响应实体
Vary: Accept-Encoding
Via
一个包含所有中间主机和协议的通用头标,用于满足请求。
Via: 1.0 fred.com, 1.1 wilma.com
Warning
用于提供关于响应状态补充信息的响应头标。
Warning: 99 www.myweb.com Piano needs tuning
www-Authenticate
一个提示用户代理提供用户名和口令的响应头标,与状态编码401(未授权)配合使用。响应一个授权头标。
www-Authenticate: Basic realm=zxm.mgmt
X-Cache
表示 http request 是由 proxy server 回的
MISS 表示 proxy 無資料,代理動作
HIT 表示 proxy 直接回應
- 浏览: 186224 次
- 性别:
- 来自: 北京
-
最新评论
-
小黄牛:
基于支付系统真实场景的分布式事务解决方案效果演示:http:/ ...
spring 7 种分布式事务实现 -
blue2048:
看看两个实例的端口要不一样,另外,看看日志提示有没有错误
elasticsearch 单机部署 集群 -
mtsw2011:
我改了# Set the bind address speci ...
elasticsearch 单机部署 集群
相关推荐
内容概要:本文详细介绍了基于MATLAB GUI界面和卷积神经网络(CNN)的模糊车牌识别系统。该系统旨在解决现实中车牌因模糊不清导致识别困难的问题。文中阐述了整个流程的关键步骤,包括图像的模糊还原、灰度化、阈值化、边缘检测、孔洞填充、形态学操作、滤波操作、车牌定位、字符分割以及最终的字符识别。通过使用维纳滤波或最小二乘法约束滤波进行模糊还原,再利用CNN的强大特征提取能力完成字符分类。此外,还特别强调了MATLAB GUI界面的设计,使得用户能直观便捷地操作整个系统。 适合人群:对图像处理和深度学习感兴趣的科研人员、高校学生及从事相关领域的工程师。 使用场景及目标:适用于交通管理、智能停车场等领域,用于提升车牌识别的准确性和效率,特别是在面对模糊车牌时的表现。 其他说明:文中提供了部分关键代码片段作为参考,并对实验结果进行了详细的分析,展示了系统在不同环境下的表现情况及其潜在的应用前景。
嵌入式八股文面试题库资料知识宝典-计算机专业试题.zip
嵌入式八股文面试题库资料知识宝典-C and C++ normal interview_3.zip
内容概要:本文深入探讨了一款额定功率为4kW的开关磁阻电机,详细介绍了其性能参数如额定功率、转速、效率、输出转矩和脉动率等。同时,文章还展示了利用RMxprt、Maxwell 2D和3D模型对该电机进行仿真的方法和技术,通过外电路分析进一步研究其电气性能和动态响应特性。最后,文章提供了基于RMxprt模型的MATLAB仿真代码示例,帮助读者理解电机的工作原理及其性能特点。 适合人群:从事电机设计、工业自动化领域的工程师和技术人员,尤其是对开关磁阻电机感兴趣的科研工作者。 使用场景及目标:适用于希望深入了解开关磁阻电机特性和建模技术的研究人员,在新产品开发或现有产品改进时作为参考资料。 其他说明:文中提供的代码示例仅用于演示目的,实际操作时需根据所用软件的具体情况进行适当修改。
少儿编程scratch项目源代码文件案例素材-剑客冲刺.zip
少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip
内容概要:本文详细介绍了基于PID控制器的四象限直流电机速度驱动控制系统仿真模型及其永磁直流电机(PMDC)转速控制模型。首先阐述了PID控制器的工作原理,即通过对系统误差的比例、积分和微分运算来调整电机的驱动信号,从而实现转速的精确控制。接着讨论了如何利用PID控制器使有刷PMDC电机在四个象限中精确跟踪参考速度,并展示了仿真模型在应对快速负载扰动时的有效性和稳定性。最后,提供了Simulink仿真模型和详细的Word模型说明文档,帮助读者理解和调整PID控制器参数,以达到最佳控制效果。 适合人群:从事电力电子与电机控制领域的研究人员和技术人员,尤其是对四象限直流电机速度驱动控制系统感兴趣的读者。 使用场景及目标:适用于需要深入了解和掌握四象限直流电机速度驱动控制系统设计与实现的研究人员和技术人员。目标是在实际项目中能够运用PID控制器实现电机转速的精确控制,并提高系统的稳定性和抗干扰能力。 其他说明:文中引用了多篇相关领域的权威文献,确保了理论依据的可靠性和实用性。此外,提供的Simulink模型和Word文档有助于读者更好地理解和实践所介绍的内容。
嵌入式八股文面试题库资料知识宝典-2013年海康威视校园招聘嵌入式开发笔试题.zip
少儿编程scratch项目源代码文件案例素材-驾驶通关.zip
小区开放对周边道路通行能力影响的研究.pdf
内容概要:本文探讨了冷链物流车辆路径优化问题,特别是如何通过NSGA-2遗传算法和软硬时间窗策略来实现高效、环保和高客户满意度的路径规划。文中介绍了冷链物流的特点及其重要性,提出了软时间窗概念,允许一定的配送时间弹性,同时考虑碳排放成本,以达到绿色物流的目的。此外,还讨论了如何将客户满意度作为路径优化的重要评价标准之一。最后,通过一段简化的Python代码展示了遗传算法的应用。 适合人群:从事物流管理、冷链物流运营的专业人士,以及对遗传算法和路径优化感兴趣的科研人员和技术开发者。 使用场景及目标:适用于冷链物流企业,旨在优化配送路线,降低运营成本,减少碳排放,提升客户满意度。目标是帮助企业实现绿色、高效的物流配送系统。 其他说明:文中提供的代码仅为示意,实际应用需根据具体情况调整参数设置和模型构建。
少儿编程scratch项目源代码文件案例素材-恐怖矿井.zip
内容概要:本文详细介绍了基于STM32F030的无刷电机控制方案,重点在于高压FOC(磁场定向控制)技术和滑膜无感FOC的应用。该方案实现了过载、过欠压、堵转等多种保护机制,并提供了完整的源码、原理图和PCB设计。文中展示了关键代码片段,如滑膜观测器和电流环处理,以及保护机制的具体实现方法。此外,还提到了方案的移植要点和实际测试效果,确保系统的稳定性和高效性。 适合人群:嵌入式系统开发者、电机控制系统工程师、硬件工程师。 使用场景及目标:适用于需要高性能无刷电机控制的应用场景,如工业自动化设备、无人机、电动工具等。目标是提供一种成熟的、经过验证的无刷电机控制方案,帮助开发者快速实现并优化电机控制性能。 其他说明:提供的资料包括详细的原理图、PCB设计文件、源码及测试视频,方便开发者进行学习和应用。
基于有限体积法Godunov格式的管道泄漏检测模型研究.pdf
嵌入式八股文面试题库资料知识宝典-CC++笔试题-深圳有为(2019.2.28)1.zip
少儿编程scratch项目源代码文件案例素材-几何冲刺 V1.5.zip
Android系统开发_Linux内核配置_USB-HID设备模拟_通过root权限将Android设备转换为全功能USB键盘的项目实现_该项目需要内核支持configFS文件系统
C# WPF - LiveCharts Project
少儿编程scratch项目源代码文件案例素材-恐怖叉子 动画.zip
嵌入式八股文面试题库资料知识宝典-嵌⼊式⼯程师⾯试⾼频问题.zip