超文本传输协议
超文本传输协议
超文件传输协定(HTTP,HyperTextTransfer Protocol)是因特网上应用最为广泛的一种网络传输协定。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
介绍
超
请求信息
发出的请求信息包括以下几个* 请求行,例如GET /images/logo.gif HTTP/1.1,表示从/images 目录下请求logo.gif这个文件。
* 标题,例如Accept-Language: en
* 空行
请求行和标题必须以<CR><LF>作为结尾(也就是,回车然后换行)。空行内必须只有<CR><LF>而无其他空格。在HTTP/1.1协议中,所有的标题除主机外都是可选的。
请求方法
HTTP 定义了八种方法来指示确认的资源执行所需的行为。GET 请求某个特殊的资源,是目前网上最通用的方法。不应该用于一些会造成副作用的操作中(在网络软件中使用是一个常见的错误用法)。参看下个目录的安全方法。
DELETE 删除特定资源
TRACE 返回接收的请求,客户端可因此察看在请求过程中什么中间服务器被加进来或者有所改变。 OPTIONS 返回服务器支持的HTTP方法,这可以用来检查网络服务器的功能。
CONNECT 将请求连接转换成透明的TCP/IP通道,通常通过非加密的HTTP代理利用SSL-加密通讯(HTTPS)。
编辑本段安全方法
有些方法(比如HEAD, GET, OPTIONS, and TRACE) 被定义为安全方法,这些方法针对的只是信息的返回,并不会改变服务器的状态(换句话说就是这些方法不会产生副作用)。不安全的方法(例如POST, PUTand DELETE)应该用特殊的方式向用户展示,通常是按钮而不是链接,这样就可以使用户意识到可能要负的责任(例如一个按钮带来的资金交易。)超文本
超文本(Hypertext)是用超链结的方法,将各种不同空间的文字信息组织在一起的网状文本。超文本更是一种用户介面范式,用以显示文本及与文本之间相关的内容。现时超文本普遍以电子文档方式存在,其中的文字包含有可以链结到其他位置或者文档的连结,允许从当前阅读位置直接切换到超文本连结所指向的位置。超文本的格式有很多,目前最常使用的是超文本标记语言(Hyper TextMarkup Language,HTML)及富文本格式 (Rich TextFormat,RTF)。我们日常浏览的网页上的链结都属于超文本。2、一种按信息之间关系非线性地存储、组织、管理和浏览信息的计算机技术。超文本技术将自然语言文本和计算机交互式地转移或动态显示线性文本的能力结合在一起,它的本质和基本特征就是在文档内部和文档之间建立关系,正是这种关系给了文本以非线性的组织。例子
下面是一个HTTP客户端与服务器之间会话的例子,运行于www.g o o g l e. c o m,端口80客户端请求:
Host:www.b a i d u.c o m
(紧跟着一个换行,通过敲入回车实现)
服务器应答:
HTTP/1.1 200 OK
Content-Length: 3059
Server: GWS/2.0
Date: Sat, 11 Jan 2003 02:44:04 GMT
Content-Type: text/html
Cache-control: private
Set-Cookie:PREF=ID=73d4aef52e57bae9:TM=1042253044:LM=1042253044:S=SMCc_HRPCQiqy X9j; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.g o og l e. c o m
Connection: keep-alive
(紧跟着一个空行,并且由HTML格式的文本组成了Google的主页)
在HTTP1.0中,客户端发送一个请求至服务器,服务器发送一个应答至客户端。之后,连接将被释放。另一方面,HTTP1.1支持持久连接。这使得客户端可以发送请求并且接收应答,然后迅速的发送另一个请求和接收另一个应答。因为多个额外的请求,TCP连接并没有被释放,而每个请求中关于TCP的负载相对较少。同时,在得到上一个请求的应答之前发送多个请求(通常是两个)也成为可能。这个技术被称为“流水线”。