互联网的发展非常迅速,但是万变不离其宗。学习 web 开发,需要我们对互联的交互机制有一定的了解
1、web交互基本流
【1】图片介绍
客户端
根据用户输入的地址信息请求 服务器 ,服务器 在接收到用户的请求后进行处理,然后将处理结果响应给 客户端
,客户端
将响应结果展示给用户。
专业术语:
请求:客户端根据用户地址信息将数据发送给服务器的过程。
响应:服务器将请求的处理结果发送给浏览器的过程。
【2】如何解决不同浏览器之间和不同服务器之间的数据交互的问题呢?
解决方式: 规范浏览器和服务器的数据交互的格式。
实现方式: HTTP协议。
2、HTTP的概念和介绍
【1】概念
解答:超文本传输协议(Hyper Text Transfer Protocol)
【2】作用
解答:规范了浏览器和服务器的数据交互
【3】特点
- 简单快速
客户向服务器请求服务时,只需传送请求方法和路径,请求方法常用的有 GET、HEAD、POST、PUT、DELETE。每种方法规定了客户与服务器联系的类型不同。由于 HTTP 协议简单,使得 HTTP 服务器的程序规模小,因而通信速度很快。
- 灵活高效
HTTP 允许传输任意类型的数据对象,正在传输的类型由Content-Type 加以标记。
- 无连接
无连接的含义是限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接,采用这种方式可以节省传输时间。
- 无状态
无状态是指协议对于事务处理没有记忆能力,每一次请求数据传递都是一次新的请求响应交互。
-
支持B/S及C/S模式
-
HTTP1.1版本后支持可持续连接
3、HTTP的交互流程
Tips1:客户端和服务器建立连接
Tips2:客户端发送请求数据到服务器端(HTTP 协议)
Tips3:服务器端接收到请求后,进行处理,然后将处理结果响应客户端(HTTP 协议)
Tips4:关闭客户端和服务器端的连接(HTTP1.1 后不会立即关闭)
客户端连接服务器 -> 发送请求 -> 响应请求(返回客户端) <-> 关闭连接
4、HTTP 协议之请求格式
【1】请求格式的结构
请求头:请求方式、请求的地址和 HTTP 协议版本。
请求体:消息报文、一般用来说明客户端要使用的一些附加信息。
空行:位于请求行和请求数据之间,空行是必须的。
请求数据:非必须。
【2】get请求示例
【3】post请求示例
5、 HTTP 协议之请求方式
HTTP1.0
定义了三种请求方法:GET、POST、HEAD方法
HTTP1.1
新增了五种请求方法:OPTIONS、PUT、DELETE、TRACE和CONNECT
POST请求和GET请求的区别
-
get请求方式
- 不安全,以?的形式拼接,没有请求体。
- get请求是在URL地址栏进行请求的,浏览器对URL长度有限制,不能带大量数据。
-
post请求方式
- 请求数据在请求体中发送,安全。
- 并且适合发送大量的数据。
6、 HTTP 协议之响应
【1】响应格式的结构
响应行:HTTP 版本、状态码、状态消息
响应头:消息报头,客户端使用的附加信息
空行:响应头和响应实体之间的,必须的
响应实体:正文,服务器返回给浏览器的信息
【2】HTTP 常见响应状态码含义
HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP 状态码共分为 5 种类型:
分类 | 分类描述 |
---|---|
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接收并处理 |
3** | 重定向,需要进一步的操作以完成请求 |
4** | 客户端错误,请求包含语法错误或无法完成请求 |
5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
【3】常见状态码
200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate 报头域一起使
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,if:输入了错误的 URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复