1.HTTP协议介绍
HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中最著名的就是RFC 2616。RFC 2616定义了今天普遍使用的一个版本——HTTP 1.1。 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。 HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。
2.HTTP协议消息的结构
客户端请求消息
客户端发送一个请求消息到服务器的消息包括以下几个内容:
1.请求行
//请求方式,请求地址,协议版本
GET /mobile/index.html HTTP/1.1
2.消息头
//字段名:值
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
DNT: 1
Referer: http://blog.csdn.net/?ref=toolbar
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8
3.请求正文
服务端响应消息
服务端返回给客户端的响应消息包括以下几个内容:
1. 状态行
HTTP/1.1 200 OK
2 .消息头
Cache-Control:no-store
Content-Language:en
Content-Length:43
Content-Type:text/html
Date:Fri, 08 Jul 2016 09:14:22 GMT
Proxy-Connection:Close
3 . 响应正文
HTTP请求方法
序号 | 方法 | 描述 |
---|---|---|
1 | GET | 请求指定的页面信息,并返回实体主体。 |
2 | HEAD | 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 |
3 | POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 |
4 | PUT | 从客户端向服务器传送的数据取代指定的文档的内容。 |
5 | DELETE | 请求服务器删除指定的页面。 |
6 | CONNECT | HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 |
7 | OPTIONS | 允许客户端查看服务器的性能。 |
8 | TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
9 | PATCH | 实体中包含一个表,表中说明与该URI所表示的原内容的区别。 |
10 | MOVE | 请求服务器将指定的页面移至另一个网络地址。 |
11 | COPY | 请求服务器将指定的页面拷贝至另一个网络地址。 |
12 | LINK | 请求服务器建立链接关系。 |
13 | UNLINK | 断开链接关系。 |
14 | WRAPPED | 允许客户端发送经过封装的请求。 |
15 | Extension-mothed | 在不改动协议的前提下,可增加另外的方法 |
HTTP应答码
HTTP应答码也称为状态码,它反映了Web服务器处理HTTP请求状态。HTTP应答码由3位数字构成,其中首位数字定义了应答码的类型:
序 号 | 方法 |
---|---|
1XX | 信息类(Information),表示收到Web浏览器请求,正在进一步的处理中 |
2XX | 成功类(Successful),表示用户请求被正确接收,理解和处理例如:200 OK |
3XX | 重定向类(Redirection),表示请求没有成功,客户必须采取进一步的动作。 |
4XX | 客户端错误(Client Error),表示客户端提交的请求有错误 例如:404 NOT Found,意味着请求中所引用的文档不存在。 |
5XX | 服务器错误(Server Error)表示服务器不能完成对请求的处理:如 500 |