HTTP消息头

简介:

一、HTTP消息头

1、通用信息头
即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data、Pragma
主要:Cache-Control、Connection、Data、Pragma、Trailer、Transfer-Encoding、Upgrade

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。各个消息中的指令含义如下:
Public指示响应可被任何缓存区缓存。
Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。
no-cache指示请求或响应消息不能缓存
no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。
max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。
min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。
max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。

Date表示消息发送的时间,时间的描述格式由rfc822定义。Date:Mon,31Dec200104:25:57GMT。Date描述的时间表示世界标准时,换算成本地时间,需要知道用户所在的时区。
Pragma用来包含实现特定的指令,最常用的是Pragma:no-cache。在HTTP/1.1协议中,它的含义和Cache- Control:no-cache相同。

2、请求头
用于在请求消息中向服务器传递附加信息,主要包括客户机可以接受的数据类型,压缩方法,语言,以及客户计算机上保留的Cookie信息和发出该请求的超链接源地址等
主要:Accept、Accept-Encoding、Accept-Language、Host、User-Agent、Referer

Accept:浏览器可接受的MIME类型。
Accept-Charset:浏览器可接受的字符集。
Accept-Encoding:浏览器能够进行解码的数据编码方式如gzip。Servlet能够向支持gzip的浏览器返回经gzip编码的HTML页面。这可以减少5到10倍的下载时间。
Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。
Host:初始URL中的主机和端口。
User-Agent:浏览器类型,如果Servlet返回的内容与浏览器类型有关则该值非常有用。
Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面。

 

3、响应头
用于在响应消息中向客户端传递附加信息,包括服务程序的名称,要求客户端进行认证的方式,请求的资源已移动到新地址等
主要:Location、Server、WWW-Authenticate(认证头)

Authorization:授权信息,通常出现在对服务器发送的WWW - Authenticate头的应答中。
Location:重定向接收者到一个新URI地址。
Server:包含处理请求的原始服务器的软件信息。此域能包含多个产品标识和注释,产品标识一般按照重要性排序。

 

4、实体头
用做实体内容的元信息,描述了实体内容的属性,包括实体信息的类型,长度,压缩方法,最后一次修改的时间和数据的有效期等
主要:Content-Encoding、Content-Language、Content-Length、Content-Location、Content-Type

 

5、扩展头
主要:Refresh、Content-Disposition


二、一些例子

1、Content-Type的作用
该实体头的作用是让服务器告诉浏览器它发送的数据属于什么文件类型。
如当Content-Type的值设置为text/html和text/plain时,前者会让浏览器把接收到的实体内容以HTML格式解析,后者会让浏览器以普通文本解析.

 

2、Content-Disposition的作用
当Content-Type的类型为要下载的类型时,这个信息头会告诉浏览器这个文件的名字和类型。
response.setHeader("Content-Type","video/x-msvideo");
response.setHeader("Content-Disposition", "attachment;filename=aaa.doc");
Content-Disposition中指定的类型是文件的扩展名,并且弹出的下载对话框中的文件类型图片是按照文件的扩展名显示的,点保存后,文件以filename的值命名,保存类型以Content中设置的为准。在设置Content-Disposition头字段之前一定要设置Content-Type头字段。

 

3、Authorization头的作用
Authorization的作用是当客户端访问受口令保护时,服务器端会发送401状态码和WWW-Authenticate响应头,要求客户机使用Authorization来应答。
response.setStatus(401);
response.setHeader("WWW-Authenticate", "Basic realm=\"Tomcat Manager Application\"");

 

更多详细头信息详解请参看原帖:

http://blog.csdn.net/lgl125/article/details/7234122

http://www.cnblogs.com/li0803/archive/2008/11/04/1324747.html

http://blog.csdn.net/kfanning/article/details/6062118

目录
相关文章
|
存储 消息中间件 监控
Pulsar 介绍与部署
Pulsar 介绍与部署
4564 0
Pulsar 介绍与部署
|
SQL 存储 NoSQL
CQL基本语法介绍|学习笔记
快速学习CQL:CQL基本语法介绍
CQL基本语法介绍|学习笔记
|
算法 调度
基于or-tools解决物流调度问题(一)
基于or-tools解决物流调度问题(一)
336 3
|
11月前
|
XML JSON 数据可视化
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
本文详细介绍了不同数据集格式之间的转换方法,包括YOLO、VOC、COCO、JSON、TXT和PNG等格式,以及如何可视化验证数据集。
2525 1
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
|
前端开发 JavaScript 数据库
Web的B/S架构
Web的B/S架构
886 1
|
11月前
|
网络协议 JavaScript 前端开发
【HTTP】HTTP报文格式和抓包
【HTTP】HTTP报文格式和抓包
238 1
|
Java 开发者
JDK 21中的记录模式(Record Patterns):简化对象匹配与解构
本文将详细介绍JDK 21中引入的新特性——记录模式(Record Patterns)。记录模式是一种强大的语言特性,它允许开发者在switch表达式中使用简化的语法来匹配和解构记录类型(record types)。本文将解释记录模式的概念、语法、使用场景以及与传统模式匹配的区别,并通过示例代码展示记录模式在实际开发中的应用。
1047 0
|
JavaScript Java 测试技术
基于Java的百货中心供应链管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的百货中心供应链管理系统的设计与实现(源码+lw+部署文档+讲解等)
226 0
|
前端开发 JavaScript Java
毕业设计|SSM+VUE的旅游平台系统(一)
毕业设计|SSM+VUE的旅游平台系统
302 0
|
Kubernetes 负载均衡 网络协议
浅入Kubernetes(8):外网访问集群
浅入Kubernetes(8):外网访问集群
2466 1
浅入Kubernetes(8):外网访问集群