HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(NextGeneration of HTTP)的建议已经提出。
URL URL( UniformResourceLocator ),中文叫统一资源定位符,是互联网上用来标识某一处资源的地址。HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。URL格式
<协议名称>:// <主机名> / <资源的路径> ?<查询字符串> # <片段标识符>
schema : // user:password@host:port / path ? query_string # segement
请求格式(Request):
请求方法 路径 版本请求头:值……空行[请求正文]响应格式(Response):
版本 状态码 状态描述 (响应行/状态行)响应头:值……空行[响应正文]HTTP状态码
状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别:
状态码含义1xx(指示信息)表示请求已接收,继续处理2xx(成功)表示请求已被成功接收、理解、接受3xx(重定向)要完成请求必须进行更进一步的操作4xx(客户端错误)请求有语法错误或请求无法实现5xx(服务器端错误)服务器未能实现合法的请求HTTP状态码详解
HTTP主要特点简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
支持B/S及C/S模式。
HTTP方法 方法说明支持的HTTP协议版本GET获取资源1.0 / 1.1POST传输实体主体1.0 / 1.1DELETE删除文件1.0 / 1.1PUT传输文件1.0 / 1.1HEAD获得报文首部1.0 / 1.1OPTIONS询问支持的方法1.1TRACE追踪路径1.1CONNECT要求用隧道协议连接代理1.1LINK建立和资源之间的联系1.0UNLINE断开连接关系1.0注:
GET提交的数据会放在URL之后,也就是请求行里面,以?分割URL和传输数据,参数之间以&相连,如EditBook?name=test1&id=123456.(请求头里面那个content-type做的这种参数形式,后面讲)
POST方法是把提交的数据放在HTTP包的请求体中.
GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.