HTTP协议笔记

来源:互联网 发布:中华遗产 知乎 编辑:程序博客网 时间:2024/06/06 13:54

一概要:

HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是从万维网(WWW:World Wide Web)

服务器,传送超文本到本地浏览器的通讯协议。

HTTP是基于TCP/IP协议来传送数据的。

HTTP是属于应用层的传输协议,由于其简便快捷,快速的方式,适用于分布式超媒体信息系统。



二主要特点:

1,简单快速:客户端向服务器请求服务时,最简单的只需传送请求方法和路径。最常用的四种请求

方法:GET、POST、PUT、DELETE。

2,灵活:HTTP可以传输任意类型的数据对象,正在传输的数据类型由Content-,Type标记。

3,无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户端的请求,并受到客

户端的应答后,即断开连接。这样做的节省了传输的时间。

4,无状态:HTTP是五状态的协议,无状态的含义是协议对事物的处理没有记忆能力。缺少状态意

味着后续处理需要前面的信息,我们必须重传。

5,支持B/S以及C/S模式。


三HTTP请求消息Request:

HTTP发送一个请求信息到服务端,请求信息的格式包括:

请求行(Request Line),请求头(Request Header),空行,请求数据。


Get请求的例子(Windows 使用Fildder抓取):

GET /562f25980001b1b106000338.jpg HTTP/1.1Host    img.mukewang.comUser-Agent    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36Accept    image/webp,image/*,*/*;q=0.8Referer    http://www.imooc.com/Accept-Encoding    gzip, deflate, sdchAccept-Language    zh-CN,zh;q=0.8
第一部分:请求行,用来说明请求的类型,请求的资源,以及使用的HTTP的版本

GET是请求方法,/56****338.jpg是请求的资源,使用的是HTTP1.1版本

第二部分:请求头,用来说明服务器需要的附加信息。

Host指请求的目的地,可以是域名或IP;User-Agent浏览器的类型,有浏览器本身定义...

第三部分:空行,请求头后面的空行是必须的。

即使最后请求数据为空,依然需要添加。

第四部分:请求数据,可以添加任意其他数据。

这里请求数据为空。

Post请求例子。

POST / HTTP1.1Host:www.wrox.comUser-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)Content-Type:application/x-www-form-urlencodedContent-Length:40Connection: Keep-Alivename=Professional%20Ajax&publisher=Wiley

第一部分:请求行,说明是Post请求,使用HTTP1.1。

第二部分:请求头,第二行到第六行。

第三部分:空行,第七行。

第四部分:请求数据,第八行。


四HTTP响应消息Response:

一般情况下,服务器在接收到客户端的请求后,会返回一个HTTP的响应信息。

HTTP也由四个部分组成:状态行,消息报头,空行,响应正文。


例子:

HTTP/1.1 200 OKDate: Fri, 22 May 2009 06:07:21 GMTContent-Type: text/html; charset=UTF-8<html>      <head></head>      <body>            <!--body goes here-->      </body></html>

第一部分:状态行,有HTTP版本号,状态码,状态消息组成。

第一行为状态行,使用HTTP1.1版本,状态码为200,状态消息为ok。

第二部分:消息报头,用来说明客户端需要的附加信息。

第二行到第三行,Date生成响应的日期,Content-Type:定义的了MIME的类型为Html,编码是UTF-8

第三部分:空行,消息报头后面的空行是必须的。

第四部分:响应正文,服务端返回给客户端的文本。

空行后面的HTML部分是响应的正文。


五HTTP之状态码:

状态码由三位数字组成,第一个数字决定了状态码的类型。

1xx:指示信息,表示请求已接收,继续处理。

2xx:成功,表示请求已被成功的接收,理解,接受。

3xx:重定向,表示要完成请求必须进行更进一步的操作。

4xx:客户端错误,表示客户端请求错误,或请求无法实现。

5xx:服务端错误,服务端未能实现合法的请求。

常见的状态码:

200 Ok                                       //客户端请求成功。

400 Bad Reques                      //客户端请求语法有错误,不能被服务端理解

401 Unauthorized                   //请求未经授权,这个状态码必须和WWW-Authenticate报头域一起使用

403 Forbidden                         //服务接受到请求,但是拒绝提供服务

404 Not Found                        //请求资源不存在,eg:错误的url

500 Internal Server Error      //服务器发生不可预期的异常

503 Server Unvailable          //服务器当前不能处理客户端的请求,一段时间后恢复正常。




原创粉丝点击