查看“图解HTTP笔记”的源代码
←
图解HTTP笔记
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
该页面已被保护以防止编辑和其他操作。
您可以查看并复制此页面的源代码:
=第六章 HTTP首部= ==6.2 HTTP首部字段== {| class="wikitable table-enhance" |- ! 表6-1:通用首部字段名!! 说明 |- | Cache-Control || 控制缓存行为 |- | Connection || 逐跳首部、连接管理 |- | Date || 创建报文的日期时间 |- | Pragma || 报文指令 |- | Trailer || 报文未端的首部一览 |- | Transfer-Encoding || 指定报文主体的传输编码方式<br/><font class=code>Transfer-Encoding: chunked</font> |- | Upgrade || 升级为其它协议 |- | Via || 代理服务器的相关信息 |- | Warning || 错误通知 |} {| class="wikitable table-enhance" |- ! 表6-2:请求首部字段名 !! 说明 |- | Accept || 用户代理可处理的媒体类型<br/><font class=code>Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</font> |- | Accept-Charset || 优先的字符集<br/><font class=code>Accept-Charset: iso-8859-5, unicode-1-1; q=0.8</font> |- | Accept-Encoding || 优先的内容编码<br/><font class=code>Accept-Encoding: gzip, deflate</font> |- | Accept-Language || 优先的语言(自然语言)<br/><font class=code>Accept-Language: zh-cn, zh;q=0,7, en-us,en;q=0.3</font> |- | Authorization || Web认证信息 |- | Expect || 期待服务器的特别行为 |- | From || 用户的电子邮箱地址 |- | Host || 请求资源所在的服务器 |- | If-Match || 比较实体标记(ETag) |- | If-Modified-Since || 比较资源的更新时间 |- | If-None-Match || 比较实体标记(与If-Match相反) |- | If-Range || 资源未更新时发送实体Byte的范围请求 |- | If-Unmodified-Since || 比较资源的更新时间(与If-Modified-Since相反) |- | Max-Forwards || 最大传输跳数 |- | Proxy-Authorization || 代理服务器要求客户端的认证信息 |- | Range || 实体字节范围请求 |- | Referer || 对请求中URI的原始获取方 |- | TE || 传输编码的优先级 |- | User-Agent || HTTP客户端程序信息 |} {| class="wikitable table-enhance" |- ! 表6-3:响应首部字段名称 !! 说明 |- | Accept-Ranges || 是否接受字节范围请求 |- | Age || 推算资源创建经过时间 |- | ETag || 资源的匹配信息 |- | Location || 令客户端重定向至指定URI |- | Proxy-Authenticate || 代理服务器对客户端的认证信息 |- | Retry-After || 对再次发起请求的时机要求 |- | Server || HTTP服务器的安装信息 |- | Vary || 代理服务器缓存的管理信息 |- | WWW-Authenticate || 服务器对客户端的认证信息 |} {| class="wikitable table-enhance" |- ! 表6-4:实体首部字段名 !! 说明 |- | Allow || 资源可支持的HTTP方法 |- | Content-Encoding || 实体主体适用的编码方式 |- | Content-Language || 实体主体的自然语言 |- | Content-Length || 实体主体的大小(单位:字节) |- | Content-Location || 替代对应资源的URI |- | Content-MD5 || 实体主体的报文摘要 |- | Content-Range || 实体主体的位置范围 |- | Content-Type || 实体主体的媒体类型 |- | Expires || 实体主体过期的日期时间 |- | Last-Modified || 资源最后修改的日期时间 |} 逐跳字段(除了以下这8个首部字段外,其它都属于端到端首部): *Connection *Keep-Alive *Proxy-Authenticate *Trailer *TE *Transfer-Encoding *Upgrade ==6.3 HTTP1.1通用首部字段== ===6.3.1 Cache-Control指令=== [http://www.jb51.net/article/34017.htm Cache-control使用Cache-control:private学习笔记]<br /> <big>指令一览</big><br /> 缓存请求指令: {| class="wikitable" |- ! 指令 !! 参数 !! 说明 |- | no-cache || 无 || 强制向源服务器再次验证 |- | no-store || 无 || 不缓存请求或响应的任何内容 |- | max-age=[秒] || 必须 || 响应的最大Age值 |- | max-stale(=[秒]) || 可省略 || 接收已过期的响应 |- | min-refresh=[秒] || 必须 || 期望在指定的时间内仍然有效 |- | no-transform || 无 || 代理不可更改媒体类型 |- | only-if-cached || 无 || 从缓存获取资源 |- | cache-extention || - || 新指令标记(token) |} 缓存响应指令: {| class="wikitable" |- ! 指令 !! 参数 !! 说明 |- | public || 无 || 可向任意方提供响应的缓存 |- | private || 可省略 || 仅向特定用户返回响应 |- | no-cache || 可省略 || 缓存前必须先确认其有效性 |- | no-store || 无 || 不缓存请求或响应的任何内容 |- | no-transform || 无 || 代理不可更改媒体类型 |- | must-revalidate || 无 || 可缓存但必须再向源服务器进行验证 |- | proxy-revalidate || 无 || 要求中间缓存服务器对缓存的响应有效性再进行确认 |- | max-age=[秒] || 必须 || 响应的最大Age值 |- | s-maxage=[秒] || 必须 || 公共缓存服务器响应的最大Age值 |- | cache-extension || - || 新指令标记(token) |} ;no-cache指令 :事实上:no-cahce代表不缓存过期的资源,缓存会向源服务器进行有效期确认后处理资源。 :no-store才是真正的不缓存资源。 [[文件:NoCache.jpeg|600px|缩略图|居中|no-cache]] ;s-maxage:功能与max-age相同,不同是本指令只适用于供多用户使用的公共缓存服务器(一般指代理)。 :另外,当使用s-maxage指令后,则直接忽略Expires首部字段及max-age指令的处理。 ;max-age:在HTTP/1.1时优先级大于Expires 。<font class=code>Cache-Control: max-age=604800</font> [[文件:CacheControlMaxAge.jpeg|600px|缩略图|居中|max-age]] ;min-refresh:在原缓存时间的基础上减少多少有效时间。 ;max-stale:在原缓存时间基础上增加多少时间。预即使过期也照常接收(只要处于max-stale指定的时间内)。 ===6.3.2 Connection=== <big>作用一 控制不再转发给代理的首部字段:</big><br /> [[文件:ConnectionUpgrade.jpeg|600px|缩略图|居中|不再转发的首部字段名]] 作用一 管理持久连接: [[文件:ConnectionClose.jpeg|600px|缩略图|居中| Connection: close]] [[文件:ConnectionKeepalive.jpeg|600px|缩略图|居中|Connection: Keep-Alive]] ===6.3.6 Transfer-Encoding=== 可以用它来控制分块传输: [[文件:Transfer-EncodingChunked.jpeg|600px|缩略图|居中|Transfer-Encoding: chunked]] ===6.3.8 Via=== ==6.4 请求首部字段== ===6.4.1 Accept=== 例子:<font class=code>Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</font><br /> 下面是媒体类型的例子: ;文本文件:text/html,text/plain, text/css ... :application/xhtml+xml,application/xml ... ;图片文件:image/jpeg, image/gif, image/png ... ;视频文件:video/mpeg, video/quicktime ... ;应用程序使用的二进制文件:application/octet-stream, application/zip ... ===6.4.5 Authorization=== [[文件:AuthorizationDemo.jpeg|600px|缩略图|居中|Authorization示例]] ==6.5响应首部字段== ===6.5.8 Vary=== [https://imququ.com/post/vary-header-in-http.html HTTP 协议中 Vary 的一些研究] ==6.7 为Cookie服务的首部字段== 表6-8为Cookie服务的首部字段 {| class="wikitable table-enhance" |- ! 首部字段名 !! 说明 !! 首部类型 |- | Set-Cookie || 开始状态管理所使用的Cookie信息 || 响应首部字段 |- | Cookie || 服务器接收到的Cookie信息 || 请求首部字段 |} ===Set-Cookie=== <font class=code>Set-Cookie: status=enable; expires=Tue, 05 Jul 2011 07:26:31 GMT; path=/; domain=.hackr.jp;</font><br /> 表6-9:Set-Cookie字段的属性 {| class="wikitable" |- ! 属性 !! 说明 |- | NAME=VALUE || 赋予Cookie的名字和其值(必须项) |- | expires=DATE || Cookie的有效期(若不明确指定则默认为浏览器关闭前为止) |- | path=PATH || 将服务器上的文件目录作为Cookie的适用对象(若不指定则默认为文档所在的文件目录)<br/><font class=bg-warning>如果指定了则采用未尾匹配原则</font> |- | domain=域名 || 作为Cookie适用对象的域名(若不指定则默认为创建Cookie的服务器的域名) |- | Secure || 仅在HTTPS安全通信时才会发送Cookie |- | HttpOnly || 加以限制,使Cookie不能被JavaScript访问。主要是方XSS攻击。<br/><font class=code>Set-Cookie: name=value; HttpOnly</font> |} ===Cookie=== <font class=code>Cookie: status=enable</font> ==6.8 其他首部字段== {| class="wikitable table-enhance" |- ! 首部字段名 !! 说明 !! 首部类型 |- | X-Frame-Options || 用于控制网站内容在其他Web网站的Frame标签内的显示问题。主要是为了防点击劫持。<font class=code>X-Frame-Options: DENY</font> || 响应首部字段 |- | Cookie || 服务器接收到的Cookie信息 || 请求首部字段 |}
返回
图解HTTP笔记
。
导航菜单
个人工具
创建账户
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
相关站点
站长博客
分类
DB
WEB
iOS
Android
深度学习
技术收集
素材收集
历史
常用网址
导航
首页
最近更改
随机页面
帮助
常用管理页面
五笔字根表
工具
链入页面
相关更改
特殊页面
页面信息