热度 29
2014-12-22 16:59
1122 次阅读|
2 个评论
网络出现后,带给人们生活上的改变是,我们可以随时随地在www网络浏览器网页上获取想要的信息。由于www内容丰富,浏览方便,也已经成为互联网重要要的服务。 那么超文本传输协议HTTP(Hypertext transfer protocol),是一种从www服务器传输超文本到本地浏览器的传送协议。简单地说,HTTP协议就是用户通过浏览器访问Web服务器的方式,并具备B/S(Browser/Server )结构。 今天就来与大家分享一下HTTP协议的学习。 在TCP/IP协议栈中的位置 HTTP协议承载于TCP协议之上,是一个应用层协议。有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。如下图所示: HTTP的请求响应模型 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响应 响应消息格式 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