HyperText Transfer Protocol 超文本传输协议 应用层通讯协议浏览器
采用请求/响应模型,一个客户端和服务器端请求和应答的标准(TCP,默认端口80)。HTTPS承载于TLS或SSL协议层之上。
缓存
HTTP的头域包括通用头,请求头,响应头和实体头四个部分服务器
客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的相似于MIME的消息结构。优化
请求报文格式:请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体编码
服务器以一个状态行做为响应,响应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。url
应答报文格式: 状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体spa
包含请求和响应消息都支持的头域,通用头域包含Cache-Control、Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via。.net
public | 响应可被任何缓存区缓存 |
private | 对于单个用户的整个或部分响应消息,不能被共享缓存处理。这容许服务器仅仅描述当用户的部分响应消息,此响应消息对于其余用户的请求无效 |
no-cache | 请求或响应消息不能缓存 |
no-store | 在请求消息中发送将使得请求和响应消息都不使用缓存。 |
max-age | 指示客户机能够接收生存期不大于指定时间(以秒为单位)的响应 |
min-fresh | 指示客户机能够接收响应时间小于当前时间加上指定时间的响应 |
max-stale | 客户机能够接收超出超时期间的响应消息。若是指定max-stale的值,那么客户机能够接收超出超时期指定值以内的响应消息。 |
Date头域
表示消息发送的时间(世界标准时),时间的描述格式由rfc822定义。
eg: Date:Mon,31Dec200104:25:57GMT。orm
Pragma头域
用来包含实现特定的指令,最经常使用的是Pragma:no-cache。在HTTP/1.1协议中,它的含义和Cache-Control:no-cache相同。blog
容许客户端向服务器传递关于请求或者关于客户机的附加信息。包含: Accept、Accept-Charset、Accept-Encoding、Accept-Language、Authorization、From、Host、If-Modified-Since、If-Match、If-None-Match、If-Range、If-Range、If-Unmodified-Since、Max-Forwards、Proxy-Authorization、Range、Referer、User-Agent。
容许服务器传递不能放在状态行的附加信息。包含Age、Location、Proxy-Authenticate、Public、Retry-After、Server、Vary、Warning、WWW-Authenticate
请求消息和响应消息均可以包含实体信息,实体信息通常由实体头域和实体组成。实体头域包含关于实体的原信息,实体头包括Allow、Content-Base、Content-Encoding、Content-Language、Content-Length(实际传送的字节数)、Content-Location、Content-MD五、Content-Range(传送的范围,在断点续传中与请求头中的Range合用)、Content-Type、Etag、Expires、Last-Modified、extension-header。
(实体能够是一个通过编码的字节流,它的编码方式由Content-Encoding或Content-Type定义,它的长度由Content-Length或Content-Range定义)