HTTP协议笔记

一:HTTP协议简介

HTTP(Hyper text
transfer protocol)即超文本协议,它允许将HTML(超文本标记语言)文档从web服务器传送到web服务区。

HTTP协议的特点:

Ø 无连接 限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,断开连接,采用这种方式节省传输时间。

Ø 无状态 协议对于事物的处理没有记忆能力。意味着,如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传达的数据量增大。另一方面,在服务器不需要先前信息是它的应答较快。

Ø 媒体独立
只要只要客户端和服务器端知道如何处理数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器端指定使用适合的MIME-type内容类型。

二:HTTP报文

HTTP报文由请求报文和响应报文两部分组成。在介绍HTTP之前,首先了解下URL(union
resource locatioer)

格式:protocol://hostname:port/directory/filename?name=value#ancho

HTTP协议笔记

(一)HTTP请求报文

HTTP请求报文由三部分组成:

请求行:声明请求方法,主机域名/资源路径和协议版本

请求头部:声明客户端,服务器的部分信息

请求体:存放需要发送的数据信

HTTP协议笔记

1.请求行

请求行组成=请求方法+请求路径+协议版本

HTTP协议笔记

(1)请求方法

HTTP协议笔记

常用的请求方法:GET,POST,HEAD,PUT

GET: GET方法用于获取请求页面的指定信息。如果请求资源为动态脚本(非HTML),那么返回文本是Web容器解析后的HTML源代码。GET请求没有消息主体,因此在消息头后的空白行是没有其他数据。

POST:POST方法也与GET方法相似,但最大的区别在于,GET方法没有请求内容,而POST是有请求内容的。

HEAD:这个请求的功能与GET请求相似,不同之处在于服务器不会再其响应中返回消息主体,因此,这种方法可用于检查某一资源在向其提交GET请求前是否存在。

PUT:PUT方法用于请求服务器把请求中的实体存储在请求资源下,如果请求资源已经在服务器中存在,那么将会用此请求中的数据替换原先的数据。向服务器上传指定的资源。

2.请求头

HTTP协议笔记
HTTP协议笔记

3.请求体

GET方式,没有消息体,数据附在URL之后传递到服务器。

POST方式,有消息体,数据放在消息体中传递到服务器。
HTTP协议笔记

(二)HTTP响应报文

HTTP响应报文=状态行,响应头,响应体

报文结构
HTTP协议笔记

1.状态行

状态行=协议版本+状态码+状态信息
HTTP协议笔记

(1)状态码

状态码由三位数字组成,第一位数字定义了响应类别,且有五种取值

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

² 2xx:成功:表示请求已被成功接受、理解、接受

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

² 4xx:客户端错误:请求有语法错误或请求无法实现

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

HTTP协议笔记

举例

HTTP/1.1 202 Accepted(接受)

HTTP/1.1 404 Not Found(没找到)

2.响应头

一个HTTP响应代表服务器给浏览器回送的数据,同时告诉浏览器应当怎样处理数据。

HTTP协议笔记

3.响应体

响应体和请求体是一样的格式。

三:HTTP版本的比较

(一)HTTP1.1和HTTP1.0的区别

1.在同一个TCP连接中可传送多个HTTP请求响应

2.多个请求响应报文可同时进行,可重叠

3.引入更多的请求头响应头

(二)HTTP和HTTPS的区别

HTTP协议笔记

(三)HTTP处理长连接的方式

HTTP协议笔记