-
HTTP协议
-
超文本传输协议
-
Hyper Text Transfer Protocol
-
HTTP的作用
-
规范浏览器与服务器的数据交换的格式
思考:没有HTTP协议会怎样?
没有 HTTP 协议也可以,但是会阻碍互联网的发展,没有约束就会出现很多的问题
-
HTTP的特点
-
简单快捷
客户向服务器请求时只需要传输请求方法和路径常用的请求方法有GET;HEAD;POST
每种方法规定了客户与服务器联系类型的不同由于 HTTP 协议决定
使得 HTTP 服务器的程序规模小因而通信速度很快
-
灵活
HTTP 允许传输任意数据类型的对象正在传输的类型用Context-Type加以标记
-
无连接
每次只处理一个请求服务器处理完请求并得到客户端的响应即断开链接这种方式可以节省传输时间
-
无状态
HTTP 协议是无状态协议无状态指的是对事物处理没有记忆能力如果后续的处理的事物中需要用到前面的信息,则需要重新传送,这样可能会导致信息数据量增加。另一方面,在服务器不需要先前信息时它的应答速度就会很快。
-
支持B/S及C/S模式
-
HTTP 1.1版本后支持可持续链接
-
HTTP的交互流程
-
步骤一
客户端和服务器端建立链接
-
步骤二
客户端发送请求数据到服务器端(HTTP协议)
-
步骤三
服务器收到请求数据后进行处理然后将结果响应给客户端(HTTP协议)
-
步骤四
关闭客户端和服务器端的连接(HTTP 1.1后不会立即关闭)
-
HTTP协议的请求
不同的请求方式,他们的请求格式会有所不同
-
请求头
请求方式、请求的地址和HTTP协议版本
-
请求行
消息报头,一般用来说明来说明客户端要使用的一些附加信息
-
空行
位于请求行和请求数据之间,空行是必须得
-
请求数据
非必须
-
HTTP协议的请求方式
-
HTTP 1.0版本
三种请求方式:GET、POST和HEAD方法
-
HTTP 1.1版本
新增了五种请求方式:OPTION、PUT、DELETE、TRACE和CONNECT方法
-
GET请求方式
请求数据会以 ? 的形式隔开拼接在请求头中,不安全,没有请求实体部分,传送数据在1KB以下
-
POST请求方式
请求数据在请求实体中进行发送,在 URL 中看不到具体的请求数据,安全。适合数据量大的数据发送
-
HTTP协议的响应
-
响应行(行状态)
HTTP版本、状态码、状态消息
-
响应头
消息报头,客户端使用的附加信息
-
空行
响应头和响应实体之间,必须的
-
响应实体
正文,服务器返回给浏览器的信息
-
HTTP常见响应状态码
HTTP状态码是由三个十进制数字组成,第一个十进制数字决定了状态码的类型,后两个没有分类的作用
-
1**(信息,服务器收到请求,需要请求者继续执行操作)
-
2**(成功,操作被成功接收并处理200 OK)
-
3**(重定向,需要进一步操作完成请求)
-
4**(客户端错误,请求包含错误语法或无法完成请求)
400 Bad Request : 请求有语法错误,不能被服务器理解
401 Unauthenticate : 请求未经过授权,这个状态码必须和 www-authenticate 报头域一起使用
403 Forbidden: 服务器收到请求,但是拒绝提供服务
404 Not Found: 请求资源不存在
-
5**(服务器错误,服务器在处理请求的过程中发送了错误)
500 Internal Server Error:服务器发生不可预期的错误
503 Server Unavailable: 服务器不能处理客户端请求,一段时间后可能回复正常