HTTP 请求报头详解
Java代码
http头的组成:
==============
HTTP头字段包括4类:
general-header ;
request-header ;
response-header ;
entity-header .
*******************************************************************************
General Header Fields
=============================
general header是request、response都可用的, 但是不能用于entity.
--Cache-Control
--Connection
--Date
--Pragma
--Trailer
--Transfer-Encoding
--Upgrade
--Via
--Warning
*******************************************************************************
Request Header Fields
======================
request-header fields 允许客户端传递关于request和客户端的附加信息到服务端,
--Accept
--Accept-Charset
--Accept-Encoding
--Accept-Language
--Authorization
--Expect
--From
--Host
--If-Match
--If-Modified-Since
--If-None-Match
--If-Range
--If-Unmodified-Since
--Max-Forwards
--Proxy-Authorization
--Range
--Referer
--TE
--User-Agent
*******************************************************************************
Response Header Fields
===============================
response-header fields 允许服务端传递关于response的、不能放到Status-Line的附加信息。
这些头给出关于服务端的信息。
--Accept-Ranges
--Age
--ETag
--Location
--Proxy-Authenticate
--Retry-After
--Server
--Vary
--WWW-Authenticate
*******************************************************************************
Entity Header Fields
========================
Entity-header fields 定义关于entity-body的metainformation(标题字段数据),
如果当前没有body, 则定义被request确定的资源信息.
一些metainformation是可选的; 一些是必须的。
--Allow
--Content-Encoding
--Content-Language
--Content-Length
--Content-Location
--Content-MD5
--Content-Range
--Content-Type
--Expires
--Last-Modified
--extension-header
一、基础篇
HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。
通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。HTTP的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。
1、通用头域
通用头域包含请求和响应消息都支持的头域,通用头域包含Cache-Control、Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via。对通用头域的扩展要求通讯双方都支持此扩展,如果存在不支持的通用头域,一般将会作为实体头域处理。下面简单介绍几个在UPnP消息中使用的通用头域。
Cache-Control头域
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
补充:Web开发 , Jsp ,