超文本传输协议(HTTP)

      HTTP是一种协议,允许web服务器和浏览器通过互联网进行来发送和接受数据。它是一种请求和响应协议。客户端请求一个文件而服务器响应请求。HTTP使用可靠的TCP连接--TCP默认使用80端口。第一个HTTP版是HTTP/0.9,然后被HTTP/1.0所替代。正在取代HTTP/1.0的是当前版本HTTP/1.1,它定义于征求意见文档(RFC) 2616,可以从http://www.w3.org/Protocols/HTTP/1.1/rfc2616.pdf下载。

注意:本节涵盖的HTTP1.1只是简略的帮助你理解web服务器应用发送的消息。假如你对更多详细信息感兴趣,请阅读RFC2616。

在HTTP中,始终都是客户端通过建立连接和发送一个HTTP请求从而开启一个事务。web服务器不需要联系客户端或者对客户端做一个回调连接。无论是客户端或者服务器都可以提前终止连接。举例来说,当你正在使用一个web浏览器的时候,可以通过点击浏览器上的停止按钮来停止一个文件的下载进程,从而有效的关闭与web服务器的HTTP连接。

HTTP请求

一个HTTP请求包括三个组成部分:

方法—统一资源标识符(URI)—协议/版本

请求的头部

主体内容

      下面是一个HTTP请求的例子:
POST /examples/default.jsp HTTP/1.1
Accept: text/plain; text/html
Accept-Language: en-gb
Connection: Keep-Alive
Host: localhost
User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)
Content-Length: 33
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate

lastName=Franks&firstName=Michael

方法—统一资源标识符(URI)—协议/版本出现在请求的第一行。

POST/examples/default.jspHTTP/1.1

这里POST是请求方法,/examples/default.jsp是URI,而HTTP/1.1是协议/版本部分。

每个HTTP请求可以使用HTTP标准里边提到的多种方法之一。HTTP1.1支持7种类型的请求:GET,POST,

HEAD,OPTIONS,PUT,DELETE和TRACE。GET和POST在互联网应用里边最普遍使用的。

URI完全指明了一个互联网资源。URI通常是相对服务器的根目录解释的。因此,始终一斜线/开头。统一资源定位器(URL)其实是一种URI(查看http://www.ietf.org/rfc/rfc2396.txt)来的。该协议版本代表了正在使用的HTTP协议的版本。

请求的头部包含了关于客户端环境和请求的主体内容的有用信息。例如它可能包括浏览器设置的语言,主体内容的长度等等。每个头部通过一个回车换行符(CRLF)来分隔的。

对于HTTP请求格式来说,头部和主体内容之间有一个回车换行符(CRLF)是相当重要的。CRLF告诉HTTP服务器主体内容是在什么地方开始的。在一些互联网编程书籍中,CRLF还被认为是HTTP请求的第四部分。

在前面一个HTTP请求中,主体内容只不过是下面一行:

lastName=Franks&firstName=Michael

实体内容在一个典型的HTTP请求中可以很容易的变得更长。

HTTP响应

类似于HTTP请求,一个HTTP响应也包括三个组成部分:

方法—统一资源标识符(URI)—协议/版本

响应的头部

主体内容

    下面是一个HTTP响应的例子:
HTTP/1.1 200 OK
Server: Microsoft-IIS/4.0
Date: Mon, 5 Jan 2004 13:13:33 GMT
Content-Type: text/html
Last-Modified: Mon, 5 Jan 2004 13:13:12 GMT
Content-Length: 112

<html>
<head>
<title>HTTP Response Example</title>
</head>
<body>
Welcome to Brainy Software
</body>
</html>

响应头部的第一行类似于请求头部的第一行。第一行告诉你该协议使用HTTP1.1,请求成功(200=成功),表示一切都运行良好。

      响应头部和请求头部类似,也包括很多有用的信息。响应的主体内容是响应本身的HTML内容。头部和主体内容通过CRLF分隔开来。

相关推荐