首页 > 代码库 > HTTP/1.1 学习
HTTP/1.1 学习
发现对于HTTP协议不能脱口而出,故而怒翻资料,RFC2616 。
在其abstract中是这么说HTTP的,应用层协议,generic、无状态。其特点之一是 the typing and negotiation of data representation, allowing systems to be built independently of the data being transferred.
Messages以一种类似Internet mail使用的格式来传输,由MIME(Multipurpose Internet Mail Extensions)定义。
术语
connection:在两个程序之间因通信目的而创建的传输层虚拟回路。
message:HTTP通信的基本单元,由符合语法的结构化的八位组(octets)序列组成,通过connection传输。
request:一个HTTP request message。
response:一个HTTP response message。
resource:一个网络数据对象或者服务,可由URI确定。resources可能以multiple representations呈现(如多种语言、多种格式、多种尺寸等)。
entity:request或response承载传输的信息。一个entity由元数据(entity-header fields形式)和内容(entity-body)组成。
representation:response中的entity,服从于content negotiation。一个特别的response status可能存在multiple representations。
content negotiation:当服务一个request时,挑选合适的representation的机制。任何response的entity的representation都可被negotiated(包括error responses)。
variant:任意时刻,一个resource可能关联到一个或多个representation(s)。每一个representation就是一个variant。variant术语的使用,不意味着resource服从于content negotiation。
client:一个program,其创建connections的目的是发送requests。
user agent:发起request的client。通常是浏览器、编辑器、spiders(爬虫),或其他终端用户工具。
server:一个application program,接受connections以服务requests,会发回responses。任何program都可能既是client也是server。
origin server:一个server,具备指定的resource,或者将要创建该resource。
proxy:中间级program,同时扮演server和client角色,以代表其他clients发起requests。一个”transparent proxy”是说除了必要的proxy认证和识别之外,不会修改request或response的proxy。一个”non-transparent proxy”则会修改request或response,以为user agent提供一些额外的服务,例如group annotation services, media type transformation, protocol reduction, or anonymity filtering。
gateway:一个server,但为一些server扮演中间级。不像proxy,一个gateway接收requests就像它是requested resource的原始server一样;发起request的client不会意识到它是同一个gateway通信。
tunnel:
HTTP/1.1 学习