请求:
HTTP请求由三部分组成: 请求行、消息报头、请求正文。请求行以一个方法符号开头,以空格分开,后面跟着求情的URI和协议。
格式如下:
Method Request-URL HTTP-Version CRLF
上述格式中个参数说明如下:
Method:请求方法。
Request URL:一个统一资源标识符
HTTP Version:请求的HTTP协议版本。
CRLF:回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR和LF字符)。
请求方法(所有方法全为大写)有多种,各个方法的解释如下:
GET:请求获取Request URI所标识的资源。
POST:在Request URI所标识的资源后附加新的数据。
HEAD:请求获取由Request URI所标识的资源的相应消息报头。
PUT:请求服务器存储一个资源,并用Request URL作为其标识。
DELETE:请求服务器删除Request URI所标识的资源。
TRACE:请求服务器回送收到的请求信息,主要用于测试或诊断。
CONNECT:请求查询服务器的性能,或者查询与资源相关的选项和需求。
OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求。
响应:
在接手和解释请求消息后,服务器返回一个HTTP响应消息。HTTP响应也由三个部分组成,分别是:状态行、消息报头、正文。
状态行格式如下:
HTTP-version Status-Code Reason-Phrase CRLF
上述格式中个参数说明如下:
HTTP Version:服务器HTTP协议的版本。
Status Code:服务器发回的响应状态代码。
Reason Phrase:状态代码的文本描述。
状态代码由三维数字组成,第一个数字定义了响应的类别,有五种可能取值:
1xx:指示信息--请求已接收,继续处理。
2xx:成功--请求已被成功接收、理解、接受。
3xx:重定向--要完成请求必须进行更进一步的操作。
4xx:客户端错误--请求有语法错误或请求无法实现。
5xx:服务器端错误--服务器未能实现合法的求情。
常见状态代码、状态描述和说明如下:
200 OK:客户端请求成功。
400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
401 Unauthorize:请求未经授权,这个状态码必须和WWW Authenticate报头域一起使用。
403 forbidden:服务器收到请求,但是拒绝提供服务。
404 Not Found:请求资源不存在,例如输入了错误的URL。
500 Internal Server Error:服务器发生不可语气的错误。
503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能回复正常。
报头:
HTTP消息报头包括普通报头、请求报头、响应报头、实体报头。每个报头域组成形式如下:
名字+: +空格+值
(注意:消息报头域的名字是不区分英文大小写的。报头都是自解释的,具体在这里就不描述了。)
1.普通报头中有少数报头域用于所有的请求和响应消息,但并不用于被传输的实体,只用于传输的消息(如缓存控制、链接控制等)。
2.请求报头允许客户端向服务器端传递请求的附加信息以及客户端的自身的信息(如UA头、accept等)。
3.响应报头允许服务器传递不能放在状态行中的附加响应信息,以及关于服务器的信息和对Request URI所标识的资源进行下一步访问的信息(如Location)。
4.实体报头定义了关于实体正文和请求所标识的资源的元信息,例如有无实体正文。
比较重要的几个报头如下:
Host:头域指定请求资源的Internet主机和端口号,必须标识请求URL的原始服务器或网关的位置。HTTP 1.1请求必须包含主机头域,否则系统会以400状态码返回。
User Agent:简称UA,内容包含发出请求的用户信息。通常UA包含浏览器的信息,主要是浏览器的名称版本和所用的操作系统。
仅是使用浏览器才存在,只要使用了基于HTTP协议的客户端软件都会发送这个请求,无论是手机端还是PDA等。这个UA头是辨别客户端所用设备的重要依据。
Accept:告诉服务器可以接受的文件格式。通常这个值在各种浏览器中都差不多。不过WAP浏览器所能接受的格式要少一些,这也是用来区部分WAP和计算机浏览器的主要依据之一。随着WAP浏览器的升级,其已经和计算机浏览器越来越接近,因此这个判断所起的作用也越来越弱。
自定义报头:在HTTP消息中,也可以使用一些在HTTP1.1正式规范里没有定义的头字段,这些头字段统称为自定义的HTTP头或者扩展头。比如server字段。
HTTP请求由三部分组成: 请求行、消息报头、请求正文。请求行以一个方法符号开头,以空格分开,后面跟着求情的URI和协议。
格式如下:
Method Request-URL HTTP-Version CRLF
上述格式中个参数说明如下:
Method:请求方法。
Request URL:一个统一资源标识符
HTTP Version:请求的HTTP协议版本。
CRLF:回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR和LF字符)。
请求方法(所有方法全为大写)有多种,各个方法的解释如下:
GET:请求获取Request URI所标识的资源。
POST:在Request URI所标识的资源后附加新的数据。
HEAD:请求获取由Request URI所标识的资源的相应消息报头。
PUT:请求服务器存储一个资源,并用Request URL作为其标识。
DELETE:请求服务器删除Request URI所标识的资源。
TRACE:请求服务器回送收到的请求信息,主要用于测试或诊断。
CONNECT:请求查询服务器的性能,或者查询与资源相关的选项和需求。
OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求。
响应:
在接手和解释请求消息后,服务器返回一个HTTP响应消息。HTTP响应也由三个部分组成,分别是:状态行、消息报头、正文。
状态行格式如下:
HTTP-version Status-Code Reason-Phrase CRLF
上述格式中个参数说明如下:
HTTP Version:服务器HTTP协议的版本。
Status Code:服务器发回的响应状态代码。
Reason Phrase:状态代码的文本描述。
状态代码由三维数字组成,第一个数字定义了响应的类别,有五种可能取值:
1xx:指示信息--请求已接收,继续处理。
2xx:成功--请求已被成功接收、理解、接受。
3xx:重定向--要完成请求必须进行更进一步的操作。
4xx:客户端错误--请求有语法错误或请求无法实现。
5xx:服务器端错误--服务器未能实现合法的求情。
常见状态代码、状态描述和说明如下:
200 OK:客户端请求成功。
400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
401 Unauthorize:请求未经授权,这个状态码必须和WWW Authenticate报头域一起使用。
403 forbidden:服务器收到请求,但是拒绝提供服务。
404 Not Found:请求资源不存在,例如输入了错误的URL。
500 Internal Server Error:服务器发生不可语气的错误。
503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能回复正常。
报头:
HTTP消息报头包括普通报头、请求报头、响应报头、实体报头。每个报头域组成形式如下:
名字+: +空格+值
(注意:消息报头域的名字是不区分英文大小写的。报头都是自解释的,具体在这里就不描述了。)
1.普通报头中有少数报头域用于所有的请求和响应消息,但并不用于被传输的实体,只用于传输的消息(如缓存控制、链接控制等)。
2.请求报头允许客户端向服务器端传递请求的附加信息以及客户端的自身的信息(如UA头、accept等)。
3.响应报头允许服务器传递不能放在状态行中的附加响应信息,以及关于服务器的信息和对Request URI所标识的资源进行下一步访问的信息(如Location)。
4.实体报头定义了关于实体正文和请求所标识的资源的元信息,例如有无实体正文。
比较重要的几个报头如下:
Host:头域指定请求资源的Internet主机和端口号,必须标识请求URL的原始服务器或网关的位置。HTTP 1.1请求必须包含主机头域,否则系统会以400状态码返回。
User Agent:简称UA,内容包含发出请求的用户信息。通常UA包含浏览器的信息,主要是浏览器的名称版本和所用的操作系统。
仅是使用浏览器才存在,只要使用了基于HTTP协议的客户端软件都会发送这个请求,无论是手机端还是PDA等。这个UA头是辨别客户端所用设备的重要依据。
Accept:告诉服务器可以接受的文件格式。通常这个值在各种浏览器中都差不多。不过WAP浏览器所能接受的格式要少一些,这也是用来区部分WAP和计算机浏览器的主要依据之一。随着WAP浏览器的升级,其已经和计算机浏览器越来越接近,因此这个判断所起的作用也越来越弱。
自定义报头:在HTTP消息中,也可以使用一些在HTTP1.1正式规范里没有定义的头字段,这些头字段统称为自定义的HTTP头或者扩展头。比如server字段。