文章目录
一、HTTP协议简介
1.什么是通信
通信,就是信息的传递和交换
通信的三要素:通信的主体,内容,方式
(1)生活中的通信
举例:张三要把自己考上大学的好消息写信告诉自己的好朋友李四
其中:通信的主体是张三和李四;通信的内容是考上大学;通信的方式是写信
(2)互联网中的通信
服务器把xxx大学的简介通过响应的方式发送给客户端浏览器
其中:通信的主体是服务器与客户端浏览器;通信的内容是xxx大学的简介;通信的方式是响应
2.什么是通信协议
communication protocol,是指通信双方完成通信所必须遵守的规则和约定
通俗的理解,通信双方采用约定好的格式来发送和接收消息,这种事先约定好的通信格式,就叫做通信协议。
(1)现实生活中的通信协议
张三和李四采用写信的方式进行通信,在填写信封时,写信的双方需要遵守固定的规则。信封的填写规则就是一种通信协议。
(2)互联网中的通信协议
客户端与服务器之间要实现网页内容的传输,则通信双方必须遵守网页内容的传输协议。
网页内容又叫做超文本,因此,网页内容的传输协议又叫做超文本传输协议__HyperText Transfer Protocol,简称HTTP协议。
3.HTTP
(1)什么是HTTP协议
HTTP协议即超文本传输协议,它规定了客户端与服务器之间进行网页内容传输时,所必须遵守的传输格式。
例如:
客户端要以HTTP协议要求的格式把数据提交到服务器
服务器要以HTTP协议要求的格式把内容响应到客户端
(2)HTTP协议的交互模型
HTTP协议采用了请求/响应的交互模型
二、HTTP的请求消息
1.什么是HTTP的请求消息
由于HTTP协议属于客户端浏览器和服务器之间的通信协议。因此,客户端发起的请求叫做HTTP请求,客户端发送到服务器的消息,叫做HTTP请求消息。
注意,HTTP请求消息又叫做HTTP请求报文
2.HTTP请求消息的组成部分
HTTP请求消息由请求行(request line),请求头部(header),空行和请求体4个部分组成。
(1)请求行
请求行由请求方式,URL和HTTP协议版本3个部分组成,它们之间用空格隔开。
(2)请求头部
请求头部用来描述客户端的基本信息,从而把客户端相关的信息告知服务器。
比如:
User-Agent用来说明当前是什么类型的浏览器(我们用的是什么浏览器);
Content-Type用来描述发送到服务器的数据格式;
Accept用来描述客户端能够接收什么类型的返回内容;
Accept-Language用来描述客户端期望接收哪种人类语言的文本内容。
请求头部由多行键/值对组成,每行的键和值之间用英文的冒号分隔。
常见的请求头字段:
(3)空行
最后一个请求头字段的后面是一个空行,通知服务器请求头部至此结束。
请求消息中的空行,用来分隔请求头部与请求体。
(4)请求体
在请求体中存放的,是要通过POST方式提交到服务器的数据。
注意:只有POST请求才有请求体,GET请求没有请求体。
三、HTTP的响应消息
1.什么是HTTP响应消息
响应消息就是服务器响应给客户端的消息内容,也叫做响应报文。
HTTP响应消息由状态行,响应头部,空行和响应体4个部分组成
2.HTTP响应消息组成部分
(1)状态行
由HTTP协议版本,状态码和状态码的扫描文本3个部分组成,它们之间用空格分隔。
(2)响应头部
响应头部用来描述服务器的基本信息。
由多行键/值对组成,每行的键和值之间用英文的冒号分隔。
常见的响应头部字段:
(3)空行
在最后一个响应头部字段结束后,会紧跟一个空行,用来通知客户端响应头部至此结束。
响应消息中的空行,用来分隔响应头部与响应体
(4)响应体
响应体中存放的是服务器响应给客户端的资源内容。
四、HTTP请求方式
1.什么是HTTP请求方法
它属于HTTP协议中的一部分,请求方法的作用是:用来表明要对服务器上的资源执行的操作。
最常用的请求方法是GET(向服务器要资源)和POST(向服务器提交资源)
2.HTTP的请求方法
五、HTTP响应状态码
用来标识响应的状态
响应是成功了还是失败了,通过响应码来标识。
响应状态码会随着响应消息一起被发送至客户端浏览器,浏览器根据服务器返回的响应状态码,就能知道这次HTTP请求的结果是成功了还是失败了。
1.HTTP响应状态码的组成及分类
HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码类型,后两个数字用来对状态码进行细分。
HTTP响应状态码共分为5种类型:
2.常见的HTTP响应状态码
(1)2成功相关的响应状态码
表示服务器已经成功接收到请求并进行处理。
200:OK,请求成功,一般用于GET与POST请求
201:Created,已创建,成功请求并创建了新的资源,通常用于POST/PUT请求
(2)3重定向相关的响应状态码
表示服务器要求客户端重定向,需要客户进一步的操作以完成资源的请求。
(3)4客户端错误相关的响应状态码
表示客户端的请求中含有非法的内容,从而导致请求失败。
(4)5服务器端错误相关的响应状态码
表示服务器未能正常处理客户端请求而出现的意外错误。