HTTP 动静布局

HTTP是基于客户端/办事端(C/S)的架构模子,经由过程一个靠得住的链接来互换信息,是一个无状况的要求/呼应和谈。

一个HTTP"客户端"是一个利用法式(Web阅读器或其余任何客户端),经由过程毗连到办事器到达向办事器发送一个或多个HTTP的要求的目标。

一个HTTP"办事器"一样也是一个利用法式(凡是是一个Web办事,如Apache Web办事器或IIS办事器等),经由过程领受客户真个要求并向客户端发送HTTP呼应数据。

HTTP利用同一资本标识符(Uniform Resource Identifiers, URI)来传输数据和成立毗连。

一旦成立毗连后,数据动静就经由过程近似Internet邮件所利用的格局RFC5322和多用处Internet邮件扩大(MIME)RFC2045来通报。


客户端要求动静

客户端发送一个HTTP要求到办事器的要求动静包含以下格局:要求行(request line)、要求头部(header)、空行和要求数据四个局部构成,下图给出了要求报文的普通格局。


办事器呼应动静

HTTP呼应也由四个局部构成,别离是:状况行、动静报头、空行和呼应注释。



实例

上面实例是一点典范的利用GET来通报数据的实例:

客户端要求:

GET /hello.txt HTTP/1.1
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
Host: www.example.com
Accept-Language: en, mi

办事端呼应:

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Accept-Ranges: bytes
Content-Length: 51
Vary: Accept-Encoding
Content-Type: text/plain

输入成果:

Hello World! My payload includes a trailing CRLF.