首页 > 代码库 > 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 学习