一个简单的Web服务器
HTTP请求
- 方法 — 统一资源标识符(URI) — 协议/版本
-
请求的头部
-
主体内容
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
POST /examples/default.jsp HTTP/1.1
每个HTTP请求可以使用HTTP标准里边提到的多种方法之一。HTTP 1.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响应
- 方法—统一资源标识符(URI)—协议/版本
-
响应的头部
-
主体内容
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>
响应头部的第一行类似于请求头部的第一行。第一行告诉你该协议使用HTTP 1.1,请求成功(200=成功),表示一切都运行良好。
响应头部和请求头部类似,也包括很多有用的信息。响应的主体内容是响应本身的HTML内容。头部和主体内容通过CRLF分隔开来。
---------------------------------------------
我们每天打开浏览器浏览网页输入 http://g.cn 实际上我们仅仅是发送了一个请求。
请求信息: 如下: 个人猜测的。 呵呵
其实可以发现 在html中 总是通过 form[表单] 发送请求,然后与服务器交互信息
------------------------------------------------------------------------------------------------------------------
- 方法 — 统一资源标识符(URI) — 协议/版本
-
请求的头部
-
主体内容
GET / HTTP/1.1
Accept: text/plain; text/html
Accept-Language: en-gb
Connection: Keep-Alive
Host: g.cn
User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)
Content-Length: xx
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
xxx