- 论坛徽章:
- 0
|
超文本传输协议
维基百科,自由的百科全书
跳转到:
导航
,
搜索
网络协议
编辑
应用层
DNS
,
FTP
,
TFTP
,
ENRP
,HTTP,
IMAP
,
IRC
,
NNTP
,
POP3
,
RTP
,
SIP
,
SMTP
,
SNMP
,
SSH
,
Telnet
,
BitTorrent
,
DHCP
...
传输层
DCCP
,
SCTP
,
TCP
,
UDP
,
IL
,
RUDP
, ...
网络层
IP
(
IPv4
,
IPv6
),
ICMP
,
ARP
,
RARP
,
IGMP
...
数据链路层
Ethernet
,
Wi-Fi
,
Token Ring
,
MPLS
,
PPP
...
物理层
RS-232
,
EIA-422
,
RS-449
,
EIA-485
,
10BASE2
,
10BASE-T
...
超文本传输协议(HTTP,HyperText Transfer Protocol)是
互联网
上应用最为广泛的一种
网络传输协议
。所有的
WWW
文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收
HTML
页面的方法。
目录
[
编辑
] 概述
HTTP的发展是万维网协会和Internet工作小组合作的结果,在一系列的
RFC
发布了最终的版本,其中最著名的是
RFC 2616
。在
RFC 2616
中定义了HTTP 1.1这个今天普遍使用的版本。
HTTP是一个用于在客户端和服务器间请求和应答的协议。一个HTTP的客户端,诸如一个web浏览器,通过建立一个到远程主机特殊端口(默认
端口
为80)的连接,初始化一个请求。一个HTTP服务器通过监听特殊端口等待客户端发送一个请求序列, 就像「GET / HTTP/1.1」(用来请求网页服务器的默认页面),有选择的接收像
email
一样的
MIME
消
息,此消息中包含了大量用来描述请求各个方面的信息头序列,响应一个选择的保留数据主体。接收到一个请求序列后(如果要的话,还有消息),服务器会发回一
個回覆,如「200 OK」,同时发回一個它本報的消息,此消息的主体可能是被请求的文件、错误消息或者其他的一些信息。
HTTP不同于其他基于
TCP
的协议,诸如
FTP
。
在HTTP中,一旦一个特殊的请求(或者请求的相关序列)完成,连接通常被中断。这个设计使得对于当前页面有规则连接到另一台服务器页面的万维网来说,
HTTP是完美的。当持久连接的缺乏成为保持用户状态的必需选择的方法时,对网页设计者来说,会偶然产生一些问题。而大部分这些方法包括了对「
cookies
」的使用。
这里有一个HTTP的安全版本称为HTTPS,HTTPS支持任何的加密算法,只要此加密算法能被页面双方所理解。
HTTP(和HTTPS)由唯一资源定位器或者简称URLs定位。创造这种地址定位的语法为了HTML的链接。
[
编辑
] 例子
下面是一个HTTP客户端与服务器之间会话的例子,运行于www.google.com,端口80
客户端请求:
GET / HTTP/1.1
Host:www.google.com
(紧跟着一个换行,通过敲入回车实现)
服务器应答:
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=.google.com
Connection: keep-alive
(紧跟着一个空行,并且由HTML格式的文本组成了Google的主页)
在HTTP1.0中,客户端发送一个请求至服务器,服务器发送一个应答至客户端。之后,连接将被释放。另一方面,HTTP1.1支持持久连接。这使
得客户端可以发送请求并且接收应答,然后迅速的发送另一个请求和接收另一个应答。因为多个额外的请求,TCP连接并没有被释放,而每个请求中关于TCP的
负载相对较少。同时,在得到上一个请求的应答之前发送多个请求(通常是两个)也成为可能。这个技术被称为「流水线」。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/42826/showart_364145.html |
|