HTTP/1.1协议笔记
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.phphttp://itravel.smartcom.cc/%7ezhanhailiang/itravel2/trunk/htdocs/unionpay/back_notify.php
在调用一些第三方支付时需要提交回调URL时通常需要保证URL中所有字符都是安全的(或必须是经过编码的)。