码迷,mamicode.com
首页 > Web开发 > 详细

HTTP协议详解

时间:2015-08-25 19:02:55      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:

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协议详解

标签:

原文地址:http://www.cnblogs.com/vEagleFly/p/4757993.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!