网络出现后,带给人们生活上的改变是,我们可以随时随地在www网络浏览器网页上获取想要的信息。由于www内容丰富,浏览方便,也已经成为互联网重要要的服务。
那么超文本传输协议HTTP(Hypertext transfer protocol),是一种从www服务器传输超文本到本地浏览器的传送协议。简单地说,HTTP协议就是用户通过浏览器访问Web服务器的方式,并具备B/S(Browser/Server )结构。
今天就来与大家分享一下HTTP协议的学习。
HTTP协议承载于TCP协议之上,是一个应用层协议。有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。如下图所示:
HTTP协议永远都是客户端发起请求,服务器回送响应。HTTP协议是一个无状态的协议,不会记得“上一个请求是什么”。
一次HTTP操作称为一个事务,其工作过程可分为四步:
1)建立连接。只要单击某个超级链接,HTTP的工作开始。
2)客户端发送请求。请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
3)服务器响应。其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
4)连接断开。当服务器的响应信息显示到客户端的浏览器上,一次HTTP操作结束
那么,先来看一下建立连接的过程:
HTTP/1.0 每次请求都需要建立新的TCP连接,连接不能复用。HTTP/1.1 新的请求可以在上次请求建立的TCP连接之上发送,连接可以复用。
请求消息格式
请求消息格式如下所示:
请求行 通用信息头|请求头|实体头 CRLF(回车换行) 实体内容
其中“请求行”为:请求行 = 方法 [空格] 请求URI [空格] 版本号 [回车换行]
请求方法
HTTP的请求方法常用如下几种:
1、GET:对服务器资源的简单请求,从服务器上获取数据。
2、POST:向服务器传送数据,主要是向服务器提交表单数据,尤其是大批量的数据。
3、HEAD:类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头。
那么,相对应的响应过程也与连接过程类似:
响应消息格式
HTTP响应消息的格式如下所示:
状态行 通用信息头|响应头|实体头 CRLF 实体内容
其中:状态行 = 版本号 [空格] 状态码 [空格] 原因 [回车换行]
HTTP的状态响应码
200段是成功,300段需要对请求做进一步的处理,400段表示客户端请求错误,500段是服务器的错误。
① 客户方错误
100 继续:表示已收到请求的第一部分,正在等待其余部分。
101 交换协议:请求者已要求服务器切换协议,服务器已确认并准备切换。
② 成功
200 OK:表示服务器提供了请求的网页。
201 已创建:请求成功并且服务器创建了新的资源。
202 接收:表示服务器提供了请求的网页。
203 非认证信息:服务器已成功处理了请求,但返回的信息可能来自另一来源。
204 无内容:服务器成功处理了请求,但没有返回任何内容。
205 重置内容:服务器没有返回任何内容。此响应要求请求者重置文档视图。
206 部分内容:服务器成功处理了部分 GET 请求。
③ 重定向
300 多路选择:服务器可根据请求者选择一项操作,或提供操作列表供请求者选择。
301 永久转移:请求的网页已永久移动到新位置。
302 暂时转移:服务器目前从不同位置的网页响应请求,但申请人应当继续使用原有位置来响应以后的请求。
303 参见其它:请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
继续阅读:
http://www.iwiznet.cn/blog/?p=6692
用户1647523 2014-12-26 09:00
用户1252893 2014-12-22 17:17