新浪微博 登陆  注册   设为首页 加入收藏

学PHP >> 网络协议 >> HTTP/1.1协议笔记

HTTP/1.1协议笔记

查看次数14209 发表时间2012-07-27 00:00:48

HTTP/1.1协议笔记

HTTP/1.0 没有充分考虑分层代理,缓存,永久连接需求,或虚拟主机的影响.

代理  指一种中间程序,既作为服务器,又作为客户端,目的是按其它客户端的行为作出请求。请求在内部服务或传递它们,进行可能的翻译,到其它服务器。“透明代理”是这种代理,除其所需的代理认证和标识以外,它不修改请求或响应。“非透明代理”是另一种代理,即它要修改请求或响应,为了给用户代理提供一些服务,如组注解服务,媒体类型转换,协议变形或匿名过滤器。

网关  一种作为一些其它服务器的媒介服务器。与代理不同,代理接受对所请求资源的请求,如同自己是原始服务器一样;请求客户端可能并不清楚它正与网关通迅。

在HTTP/1.0中,大多实现为每个请求/响应交换使用新的连接。在HTTP/1.1中,一个连接可用于一次或多次请求响应交换,尽管连接可能由于各种原因被关闭。

HTTP协议没有对URI的长度作出任何硬性规定。服务器【必须】能够处理它们服务的任何资源的URI,且【应该】能够处理长度极大的URI,如果它们提供基于GET的形式可以生成这类URI。服务器【应该】返回414(Request-URI Too Long)状态,如果URI超过服务器能够处理的长度。
注:服务器应当小心决定URI长度超过255字节,因为一些老的客户端或代理实现可能不能正确支持这种长度。

URI中不在“保留”和“不安全”集(见RFC 2396)中的字符与其“%HEX HEX”编码相同。例如,下面三个URI是相同:

http://itravel.smartcom.cc/~zhanhailiang/itravel2/trunk/htdocs/unionpay/back_notify.php

http://itravel.smartcom.cc/%7Ezhanhailiang/itravel2/trunk/htdocs/unionpay/back_notify.php

http://itravel.smartcom.cc/%7ezhanhailiang/itravel2/trunk/htdocs/unionpay/back_notify.php

在调用一些第三方支付时需要提交回调URL时通常需要保证URL中所有字符都是安全的(或必须是经过编码的)。

媒体类型
HTTP在Content-Type和Accept头部域中使用因特网媒体类型,为了提供打开和要扩展的数据类型和类型协议。

media-type=type"/"subtype*(";"parameter)
type=token
subtype=token

parameter【可以】接在type/subtype后面,按attribute/value对的形式。

304 Not Modified
如果客户端执行条件GET请求,且允许访问,但文档没有变化,服务器应该用该响应码响应。304响应禁止包含消息体,因此它始终止于头部域后的首个空行。

414 Request-URI Too Long
服务器拒绝服务请求,因为Request-URI长于服务器愿意解析的长度。该罕见的状态一般发生在当客户端使用长请求信息不正确转换POST请求为GET请求时,当客户端已经降入URI重定向黑洞时(例如重定向URI前缀指向它自己的后缀),或当服务器被客户端试图利用在某些服务器中存在的安全漏洞(使用固定长度缓冲来读取或控制Request-URI)发起攻击时。

HTTP协议中文版下载:http://ishare.iask.sina.com.cn/f/8431889.html

(转发请注明转自:学PHP)    


  相关推荐



1楼 Brandywine说: 2016-12-22 01:23:40
What a pleasure to find someone who idifitnees the issues so clearly
2楼 Brandywine说: 2016-12-22 01:24:13
What a pleasure to find someone who idifitnees the issues so clearly

  发表评论
昵称:
(不超过20个字符或10个汉字)
内容: