HTTP1.0协议 RFC 1945

文章定位:翻译HTTP协议中,较为常用的部分。(NOTE:这是HTTP1.0,HTTP1.1已经在2014年发布,RFC7231。)

术语:

1. connection:两个程序为了通信(communication)在传输层建立的虚电路

2. message:HTTP通信的基本单元

3. request:一个HTTP请求消息

4. response:一个HTTP响应消息

5. resource:一个网络上的数据对象或服务,可以用URI(通用资源标识符)识别。

6. entity:数据源或服务源回复的一种特殊表示,可能包含请求或响应消息。实体包含实体头(entity headers)和实体正文(entity body)。

7. client:为了发送请求而建立连接的应用程序

8. user agent: 初始化请求的客户端。比如,浏览器、编辑器、爬虫等。

9. server:为了服务请求而接收连接的应用程序。

10. origin server:请求的资源在这个服务器上,或它创建了请求的资源。

11. proxy:一个即使客户端也是服务器的中间(intermediary)程序,经常作为客户端穿过网络防火墙的入口。

12 gateway:一个作为其他服务器的中间服务器的服务器。网关像源服务器一样接受请求,客户端通常感觉不到网关的存在。网关经常作为服务器端穿过网络防火墙的入口。

13 tunnel(隧道):隧道常用于入口是必须的 ,但中间程序不能、不应该翻译通信内容的情况。

14. cache:除了作为隧道的服务器,其他的客户端和服务器都可以有缓存。


URI:被认为是,www地址、通用文档标识符(universal document identifiers)、通用资源标识符(universal resource identifiers)、统一资源定位符(uniform resource locators)和统一资源名字(uniform resource names)的组合。

HTTP URL:"http:" "//" host [":" port] [abs_path(相对路径)]


HTTP消息:简单请求、完整请求、简单响应、完整响应

1.完整请求:请求行  [通用头部 请求头部 实体头部] 回车换行(CRLF) [实体正文]

 通用头部:请求和响应消息都可以用的头部

 请求行:请求方法(GET HEAD POST 其他自定义方法) URI HTTP协议版本 CRLF

 请求头部:授权(authorization)、Email(from)、如果修改(If-Modified-Since)、来自(referer)、用户代理(User-Agent:product tokens)

 URI:绝对路径 或 相对路径。 

2.完整响应:状态行 [通用头部 请求头部 实体头部] 回车换行 [实体正文]

 响应行:HTTP协议版本 状态码 原因解析 CRLF

 响应头部:地址(location)、服务器(server)、www认证(www-authenticate)

3.简单请求:GET URI CRLF

4. 简单响应:[实体正文]

实体头部:allow、content-encoding、content-length、expires、last-modified、其他自定义 

请求方法:

1. GET:获取信息

2.HEAD:和GET一样,除了只返回头部。服务器不能返回任何实体正文

3. POST:往服务器里添加资源

状态码:

1XX:未使用

2XX:客户的请求,服务器可以满足

200 OK:请求被满足

201 created:POST专用。POST的请求被满足,新资源已创建

202 accepted:请求被接受,但还没有处理完成

204 no content:请求被满足,但是,没有什么信息需要返回

3XX:重定向

 300 multiple choices:服务器知道很多个地方有被请求资源。如果不是GET请求,服务器要在实体正文中给出地址列表,

如果服务器觉得哪个地址最好,则在location头里给出。

301 moved permanently:资源被永久移动到别处,新的链接在location头域里给出。

302 moved temporarily:资源临时移动到别处,新的链接在location头里给出。

304 not modified:条件GET请求中,如果在请求指定的时间戳之后,网页没有改变过,服务器不需要给客户端发实体正文

4XX:客户端错误

400 bad request:服务器不懂客户端的请求

401 unauthorized:请求需要用户认证。响应必须包含www-authenticate头域

403 forbidden:服务器理解了请求,但不想满足请求。常用于服务器不想给出拒绝请求的原因时。

404 not found:服务器没有找到指定的URI对应的资源。

5XX:服务器错误

 500 internal server error:服务器遇到未知情况,阻止它满足请求

501 not implemented:服务器无法辨认请求方法(server does not recognize the request method. 与404不同)

502 bad gateway:作为网关或代理的服务器,当它尝试满足请求时,从上游服务器处接到无效响应。

503 service unavailable:由于临时过载或维护,服务器目前无法处理请求


头域定义:

 allow:实体头部。资源允许的请求方式

authorization:客户端收到401错误后,想认证自己。缓存不能保存包含认证的请求的响应

content-encoding:实体头部。有没有被压缩,以及压缩方式

content-length:实体头部。只要包含实体正文的请求,都应该给出该域

content-type:实体头部。例如:text/html

date:通用头部。表示信息产生的时间

expires:实体头部。给定消息过期时间,如果给定的时间小于收到的时间,表示该消息不能被缓存。

返回按钮可以显示已过期的历史记录,除非用户强行刷新

from:请求头部。给出用户邮箱。代理应转发该头部域

if-modified-since:请求头部。如果在该头域指定的时间后,资源没有更新,则返回没有实体正文的304响应,不返回资源

last-modified:实体头部。资源最后修改的日期

location:响应头部。3XX响应必填

prama:通用头部。传给整个传输链的指令。比如 prama : no-cache

referer:请求头部。从哪里转到、得到当前链接

server:响应头部。源服务器处理请求使用的软件。代理服务器不准在后面追加信息。服务器把自己使用的软件和版本

告诉别人,会更容易被攻击

user-agent:请求头部。用户代理产生该请求的相关信息。product token。(不明白,感觉和上面那个差不多)

www-authenticate:响应头部。401响应必填,指出请求需要哪种认证

你可能感兴趣的:(其他学习,rfc,1945)