HTTP权威指南-1-2

1 HTTP概述

资源
  • 媒体类型MIME(Multipurpose Internet Mail Extension,多用途因特网邮件扩展),是一种文本标记,表示一种 主要的对象类型和特定的子类型,中间用一条斜杠分隔,比如常见的: text/html text/plain image/jpeg image/gif video/quicktime applicaiton/vnd.ms-powerpoint
  • URI 统一资源标识符(Uniform Resource Identifier, URI),URI有两种形式,分别是URLURN
  • URL 统一资源定位符,URL格式主要包含了以下三个部分

    • URL的第一部分称为方案scheme,说明访问资源所使用的协议类型,这部分通常为HTTP协议(http://)
    • 第二部分给出服务器的因特网地址,比如(www.google.com)
    • 其余部分指定Web服务器上的某个资源,比如(/test/test.txt)
  • URN 统一资源名,URN是作为特定内容的唯一名称使用的,与目前的资源所在地无关,使用这些与位置无关的URN,就可以将资源四处搬移,通过URN,还可以用同一个名字通过多种网络访问协议来访问资源。比如,不论因特网标准文档RFC 2141位于何处(甚至可以将其复制到多个地方)都可以用下列URN来命名它:urn:ietf:rfc:2141 ;URN目前还处于实验阶段。
事务
  • HTTP方法 常见的有: GET/PUT/DELETE/POST/HEAD
  • 状态码: 200/302/404
报文
起始行
首部字段
主体
连接
  • TCP/IP
HTTP 应用层
TCP 传输层
IP 网络层
网络特有的链路借口层 数据链路层
物理网络硬件 物理层
  • 连接、IP地址及端口号
Web的结构组件
  • 代理: 位于客户端和服务器之间的HTTP中间实体,可能会对请求进行修改后转发。
  • 代理缓存: HTTP的仓库,使常用的页面副本可以保存在离客户端更近的地方。
  • 网关: 连接其他应用程序的特殊Web服务器,通常用于将HTTP流量转换成其他的协议进行通信 。
  • 隧道: 对HTTP通信报文进行盲目转发的特殊代理,通常与SSL配合建立一条加密HTTP/SSL隧道。
  • Agent代理: 发起自动HTTP请求的半智能Web客户端,指代表用户发起HTTP请求的客户端程序,通常指浏览器,还有很多其他类型的Agent代理,比如爬虫等。

2 URL与资源

  • URL资源命名方式:方案://服务器位置//资源路径
  • URL语法: <scheme>://<user>:<password>@<host>:<port>/><path>;<params>?<query>#<frag>
组件 描述
方案 访问服务器时使用的协议,http/ftp/…
用户 某些方案访问资源时需要的用户名
密码 用户名后面可能包含的密码,中间由冒号(:)分隔
主机 资源宿主服务器的主机名或者IP地址
端口 资源宿主服务器正在监听的端口号,http 80 https 443
路径 服务器上资源的本地名
参数 某些方案用这个组件指定输入参数,参数为名/值对,多个时用’&’分隔
查询 使用’?’分隔与路径其余部分
片段 一小片或一部分资源的名字,引用对象时,不会将frag字段传送给服务器,这个字段是在客户端内部使用的,通过字符’#’将其与URL的其余部分分隔开来

frag举例: http://www.example.com/blog/#it 当点击这个连接时#it不会发送给服务器,发送给服务器的是http://www.example.com,服务器将返回整个HTML页面,浏览器渲染后向下滚动并从名为#it的片段处开始显示。

自动扩展URL
  • 主机名扩展
  • 历史扩展
方案 描述
http 超文本传输协议方案,默认端口80,格式http://<host>:<port>/<path>?<query>#<frag>
https 在http的基础上使用了SSL,默认端口443,格式https://<host>:<port>/<path>?<query>#<frag>
mailto Mailto URL指向的是E-mail地址,与其它方案都有所不同,格式mailto:<RFC-822-addr-spec>
ftp 文本上传协议URL可以用来从FTP服务器上下载或者上传文件,并获取FTP的服务器的目录结构内容列表,格式ftp://<user>:<password>@<host>:<port>/<path>;<params>
rtsp,rtspu RTSP URL是可以通过实时流传输协议(Real Time Streaming Protocol)解析的音/视频媒体资源的标识符。方案rtspu中的u表示使用的UDP协议来获取资源的。格式rtsp://<user>:<password>@<host>:<port>/<path>rtspu就是方案名不同。
file 此方案表示一台指定主机上可以直接访问文件,比如通常的文件共享功能。格式file:<host>/<path>
news 根据RFC1036定义,方案news用来访问一些特定文章或新闻组,它有独特性质,news URL自身包含的信息不足以对资源进行定位。格式news:<newgroup> 示例news:rec.arts.startrek
telnet 方案telnet用于访问交互业务,它表示的并不是对象自身,而是可通过telnet协议访问的交互式应用程序(资源)。格式telnet://<user>:<password>@<host>:<port>/
未来展望
  • URN (uniform resource name)
  • PURL (persistent uniform resource locators) 是用URL来实现URN功能的例子。基本思想是在搜索资源的过程中引入另一个中间层,通过一个中间资源定位符服务器对资源的实际URL进行登记和跟踪。客户端可以向定位符请求一个永久URL,定位符可以以一个资源作为响应,将客户端重定向到资源当前实际的URL上去。更多purl信息PURL

nc(metcat)