HTTP RFC 协议 笔记
2013-03-03 20:44
274 查看
作者: 溪水清澈
HTTP协议, 宽松的应用程序,
协议规定头域之间只有一个空格,
但是服务器和客户端应该可以解析多个空格存在的情况
HTTP协议, 宽松的应用程序,
协议规定头域之间只有一个空格,
但是服务器和客户端应该可以解析多个空格存在的情况
返回码 | "101" ; 10.1.2节: 转换协议 "200" ; 10.2.1节: OK "201" ; 10.2.2节: 创建 "202" ; 10.2.3节: 接受 "203" ; 10.2.4节: 非权威信息 "204" ; 10.2.5节: 无内容 "205" ; 10.2.6节: 重置内容 "206" ; 10.2.7节: 局部内容 "300" ; 10.3.1节: 多样选择 "301" ; 10.3.2节: 永久移动 "302" ; 10.3.3节: 创建 "303" ; 10.3.4节: 观察别的部分 "304" ; 10.3.5节: 只读 "305" ; 10.3.6节: 用户代理 "307" ; 10.3.8节 临时重发 "400" ; 10.4.1节: 坏请求 "401" ; 10.4.2节: 未授权的 "402" ; 10.4.3节: 必要的支付 "403" ; 10.4.4节: 禁用 "404" ; 10.4.5节: 没找到 "405" ; 10.4.6节: 不允许的方式 "406" ; 10.4.7节: 不接受 "407" ; 10.4.8节: 需要代理验证 "408" ; 10.4.9节: 请求超时 "409" ; 10.4.10节; 冲突 "410" ; 10.4.11节: 停止 "411" ; 10.4.12节: 需要的长度 "412" ; 10.4.13节; 预处理失败 "413" ; 10.4.14节: 请求实体太大 "414" ; 10.4.15节; 请求-URI太大 "415" ; 10.4.16节: 不支持的媒体类型 "416" ; 10.4.17节: 请求的范围不满足 "417" ; 10.4.18节: 期望失败 "500" ; 10.5.1节: 服务器内部错误 "501" ; 10.5.2节: 不能实现 "502" ; 10.5.3节: 坏网关 "503" ; 10.5.4节: 服务不能实现 "504" ; 10.5.5节: 网关超时 "505" ; 10.5.6节: HTTP版本不支持 | |
connection | keep-alive | close | upgrade | |
内容协商 | Accept Accept-Charset Accept-Language Accept-Encoding User-Agent | |
Accept | Accept: (text/plain; q=0.5), text/html, (text/x-dvi; q=0.8), text/x-c | 中文解释: (源代码中没有括号, 括号只是为了说明两个值有关联) 这些类型中, 我最喜欢text/html, text/x-c( 因为假定 q = 1), 如果没有, text/x-dvi 也可以接受, 如果还没有, 只能接受text/plain啦. |
Accept-Ranges( 只有这个有s ) | bytes | 范围请求 |
Authorization | 认证 | |
Cache-Control | Pragma: no-cache // http/1.0 | |
Content-Disposition | attachment; filename="fname.ext" 如果此头域用于一个 Content-Type: application/octet-stream 响应里,那么含义就是用户代理不应该展现响应,但是它应该直接进入一个‘保存响应为…’对话框。 | 文件名应该括起来 |
Content-Encoding | gzip identity, 应该是不变吧?? deflate | |
Content-Language | ||
Content-Length | 除非被禁用, 否则必须有, 貌似由apache负责, PHP无能为力 | |
Content-Location | ||
Content-MD5 | body的md5摘要 | |
Content-Range | 假定实体共含1234字节, byte-content-range-spec值的例子如下: . The first 500 bytes: bytes 0-499/1234 . The second 500 bytes: bytes 500-999/1234 . All except for the first 500 bytes: bytes 500-1233/1234 . The last 500 bytes: bytes 734-1233/1234 | 如果此头使用, 需要配合: Content-Length来确定实际传输的数据长度 断点续传 由客户端带 Range过来, 如果php不修改Content-Range, 那么apache会自己把php输出的信息, 再进行局部截取, 填写Content-Range, 并交给客户端 php发送header Content-Range的头, 然后发送局部数据. 说明: Content-Length 可能不用处理, apache会处理好的. |
Content-Type | Content-type: multipart/byteranges; boundary=分割符(应该不带引号, 随机字符串) 每部分数据会有Content-Type, Content-Range头 | |
Date | Sun, 06 Nov 1994 08:49:37 GMT Sunday, 06-Nov-94 08:49:37 GMT Sun Nov 6 08:49:37 1994 | 必须 这三种都应该可以解析, 但是服务器只能发送第一种 星期: 可简写可全写 月: 必须简写 |
ETag | 比较来自同一资源的不同实体 | |
Expires | 例: Thu, 01 Dec 1994 16:00:00 GMT | 优先级低于 Cache-Control |
From | 用户Email: win@ab.com | 机器人应该有这个头 |
Host | 必须 | |
If-Match | 值为: ETag | 条件方法 |
If-Modified-Since | 值为 GMT时间, 见Date, 返回状态为: 304(未变) | 条件方法 |
If-None-Match | Etag | 如果不匹配 |
If-Range | Etag | Date | 如果实体没有改变,发送我想要的部分 如果实体改变了,那就把整个新的实体发过来。 |
If-Unmodified-Since | Date | |
Last-Modified | ||
Location | 完整的URL, 包括http://前缀 | |
Max-Forwards | ttl类似 | |
Pragma | no-cache, * | 包含特定执行指令 |
Proxy-Authenticate | 407响应使用 | |
Proxy-Authorization | ||
Range | 第一个500字节(字节偏移量0-499,包括0和499): bytes=0-499 第二个500字节(字节偏移量500-999,包括500和999): bytes=500-999 最后500字节(字节偏移量9500-9999,包括9500和9999): bytes=-500 或 bytes=9500- 仅仅第一个和最后一个字节(字节0和9999): bytes=0-0,-1 关于第二个500字节(字节偏移量500-999,包括500和999)的几种合法但不规范的叙述: bytes=500-600,601-999 bytes=500-700,601-999 | 位于: RFC 14.35 |
Referer | 本应是: Referrer, 出现了笔误, 延续至今 | 这个头, 可以允许服务器为维护而跟踪过时或写错的链接 |
Retry-After | ||
Server | ||
TE ( transfer-coding ) | trailers 客户端愿意接受(chunked)传输编码响应的尾部(trailer) | 块传输, 看起来像是传附件 |
Transfer-Encoding | ||
Upgrade | Upgrade常用头域允许客户端指定它支持什么样的附加传输协议,如果服务器会切换到Upgrade指定的协议如果它觉得合适的话。 如果同意切换协议, 应该返回 101 状态 | 协议切换 如果使用这个头, 那么connection里面必须有upgrade |
User-Agent | ||
Vary | ||
Via | 常用头域必须被网关和代理使用 | |
Warning | 警告信息 | |
WWW-Authenticate | Basic realm="服务器提示信息" 客户端用头: Authorization: Basic MjM6MzIz 用户名和密码为: md5( 'user:password' ); | 必须包含在 401 中, 由服务器发出的头 |
相关文章推荐
- HowTomcatWork 笔记 4 HTTP协议
- Http协议学习笔记一
- HTTP协议学习笔记2
- http协议学习笔记
- HTTP 协议学习笔记 2 Augentmented BNF
- 尚学堂马士兵servlet/JSP笔记(一、Http协议及WebApp初步)
- HTTP 协议学习笔记收藏
- Android Http协议笔记(使用HttpURLConnection)文件上传+参数
- 图解HTTP协议 第2章 简单的HTTP协议学习笔记
- 基于Tcp协议与基于Http协议的RPC简介笔记
- 《图解HTTP》笔记1简单的HTTP协议
- 韩顺平php视频笔记83-87 防盗链 $_SERVER http协议相关 文件相关
- 阅读完HTTP等协议的RFC文档之后的感受
- HTTP 笔记与总结(2 )HTTP 协议的(请求行的)请求方法 及 (响应行的)状态码
- Windows--SVN 学习笔记二 http协议
- HTTP协议学习笔记---HTTP持久连接和如何正确地关闭HTTP连接
- Http 协议基础笔记之入门篇
- 前端跳槽面试技巧(慕课网)笔记二:http协议
- Linux自学笔记——套接字与http协议基础
- php笔记05:http协议中防盗链技术