HTTP协议详解
HTTP协议是应用层的协议,那么它是如何工作的呢?
1) 客户端与服务器端需要建立连接
2) 客户端发送请求。
3) 服务器收到请求,给予相应的响应信息。
4) 客户端接收服务器返回的信息并显示,断开连接。
HTTP协议的工作:请求和响应。
1. 请求
HTTP请求由三部分组成:
请求行、消息报头、请求正文。
参数说明:
1) Method: 请求方法
2) Request-URL: 统一资源标识符
3) HTTP-Version: 请求的HTTP协议版本
4) CRLF:回车和换行
一些常用的请求方法有:
a. GET: 请求获取Request-URL标识的资源。
b. POST: 在所标识的资源后附加新的数据。
c. HEAD: 请求获取响应消息报头。(不返回内容,和GET类似)
d. PUT: 请求服务器存储一个资源,并用Request-URL作为其标识。
e. DELETE: 请求服务器删除所标识的资源。
f. TRACE: 请求服务器回送收到的请求信息,主要用于测试和判断。
g. CONNECT: 保留以备将来使用。
h. OPTIONS:请求查询服务器的性能,以及与资源相关的选项和需求,即查询服务器允许的请求方式。
2. 响应
HTTP响应由三部分组成:
状态行、消息报头、响应正文
参数说明:
1) Status-Code:服务器发回的响应状态代码。
2) Reason-Phrase:状态代码的文本描述
状态代码有五种可能的取值:
a) 1xx:指示信息——请求已经接收,继续处理。
b) 2xx:成功——请求成功被接收、理解、接受。如:200 OK
c) 3xx:重定向——要完成请求必须进一步操作。
d) 4xx:客户端错误——请求有语法错误或请求无法实现。如:400 Bad Request:请求由语法错误,不能被服务器理解。 403 Forbidden:服务器接收到请求,但是拒绝提供服务。404 Not Found:请求资源不存在,可能输错了URL。
e) 5xx:服务器端错误——服务器未能实现合法的请求。例如:500 Internal Server Error:服务器发生了不可预期的错误。503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间可能会恢复。
响应正文就是服务器返回的资源的内容。
例如:
3.报头
HTTP消息报头包括普通报头、请求报头、响应报头、实体报头。
例如:
比较重要的几个报头如下:
1. Host:头域指定请求资源的Internet主机和端口号,必须表示请求URL的原始服务器或网关位置。
2. User-Agent:简称UA,内容包括发出请求的用户信息。主要是浏览器的名称版本和所用的操作系统。如上截图,客户端使用的是Gecko渲染引擎的浏览器,这里是火狐;操作系统为Windows NT 5.1的内核 即为windows xp。
3. Accept:告诉服务器可以接收的文件格式。早期,通过WAP浏览器所能接受的格式少一些来区分WAP和计算机。
4. cookie:分两种:一种是客户端向服务器端发送的,使用Cookie报头,用来标记一些信息;另一种是服务器发送给浏览器的,报头为Set-Cookie。Cookie报头的value里可以有多个Cookie值,不需要显示指定domain。而Set-Cookie一个记录只能一个Cookie的value需要指定domain和path。
5. Cache-Control:指定请求和响应遵循的缓存机制。
6. Referer:头域允许客户端指定请求URI的源资源地址。
7. Content-Length:内容长度。
注意:
在使用POST请求时,需要指定Content-Length和Content-Type。
Content-Type为application/x-www-form-urlencoded.
例如:
原文地址:http://blog.csdn.net/u012675743/article/details/45113371