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请求报文由三部分组成:
请求行:声明请求方法,主机域名/资源路径和协议版本
请求头部:声明客户端,服务器的部分信息
请求体:存放需要发送的数据信
1.请求行
请求行组成=请求方法+请求路径+协议版本
(1)请求方法
常用的请求方法:GET,POST,HEAD,PUT
GET: GET方法用于获取请求页面的指定信息。如果请求资源为动态脚本(非HTML),那么返回文本是Web容器解析后的HTML源代码。GET请求没有消息主体,因此在消息头后的空白行是没有其他数据。
POST:POST方法也与GET方法相似,但最大的区别在于,GET方法没有请求内容,而POST是有请求内容的。
HEAD:这个请求的功能与GET请求相似,不同之处在于服务器不会再其响应中返回消息主体,因此,这种方法可用于检查某一资源在向其提交GET请求前是否存在。
PUT:PUT方法用于请求服务器把请求中的实体存储在请求资源下,如果请求资源已经在服务器中存在,那么将会用此请求中的数据替换原先的数据。向服务器上传指定的资源。
2.请求头
3.请求体
GET方式,没有消息体,数据附在URL之后传递到服务器。
POST方式,有消息体,数据放在消息体中传递到服务器。
(二)HTTP响应报文
HTTP响应报文=状态行,响应头,响应体
报文结构:
1.状态行
状态行=协议版本+状态码+状态信息
(1)状态码
状态码由三位数字组成,第一位数字定义了响应类别,且有五种取值
² 1xx:指示信息:表示请求已接收,继续处理
² 2xx:成功:表示请求已被成功接受、理解、接受
² 3xx:重定向:要完成请求必须进行更进一步的操作
² 4xx:客户端错误:请求有语法错误或请求无法实现
² 5xx:服务器端错误:服务器未能实现合法的请求
举例:
HTTP/1.1 202 Accepted(接受)
HTTP/1.1 404 Not Found(没找到)
2.响应头
一个HTTP响应代表服务器给浏览器回送的数据,同时告诉浏览器应当怎样处理数据。
3.响应体
响应体和请求体是一样的格式。
三:HTTP版本的比较
(一)HTTP1.1和HTTP1.0的区别
1.在同一个TCP连接中可传送多个HTTP请求响应
2.多个请求响应报文可同时进行,可重叠
3.引入更多的请求头响应头