1.定义:http是一种无状态面向连接。是基于TCP的面向连接的一种协议。是一种基于请求/响应模式的、无状态的协议。即我们通常所说的Request/Response。
2.前端向后端发请求,需要建立连接
(三次握手)
![](https://i-blog.csdnimg.cn/blog_migrate/a9960e40719b5ceef8910dcb0a1a9dfb.jpeg)
如果数据传输完成,就需要断开连接(
四次挥手)
![](https://i-blog.csdnimg.cn/blog_migrate/6bddc888708565f737cbca31a3ba51a3.jpeg)
①和服务器建立链接(三次握手)
② 建立链接后,发送一个请求给服务器(请求)
③服务器接受到请求以后进行相应的处理并给出一个回应(响应)
④断开与服务器的链接
3.数据传输:先连接(三次握手)--->数据传输---->断开连接(四次挥手)---->数据停止传输。
4.构成:
-
客户端--->服务端:请求报文
-
服务端--->客户端:响应报文
请求报文:
请求行 POST HTTP/1.1
请求头 HOST
Cookie:name=zs
....
请求空行
请求体 username=admin&password=12345(post请求的)
响应报文:
状态行 HTTP/1.1 200 ok
响应头 Content-type:textml;charset=utf-8
响应空行
响应体 整个html结构
5.常见响应状态码
-
100 ~ 199
- 100: 继续请求,前面的一部分内容服务端已经接受到了,正在等待后续内容
- 101: 请求者已经准备切换协议,服务器页表示同意
-
200 ~ 299
- 2 开头的都是表示成功,本次请求成功了,只不过不一样的状态码有不一样的含义(语义化)
- 200: 标准请求成功(一般表示服务端提供的是网页)
- 201: 创建成功(一般是注册的时候,表示新用户信息已经添加到数据库)
- 203: 表示服务器已经成功处理了请求,但是返回的信息可能来自另一源
- 204: 服务端已经成功处理了请求,但是没有任何数据返回
-
300 ~ 399
- 3 开头也是成功的一种,但是一般表示重定向
- 301: 永久重定向
- 302: 临时重定向
- 304: 使用的是缓存的数据
- 305: 使用代理
-
400 ~ 499(前端问题)
- 4 开头表示客户端出现错误了
- 400: 请求的语法服务端不认识
- 401: 未授权(你要登录的网站需要授权登录)
- 403: 服务器拒绝了你的请求
- 404: 服务器找不到你请求的 URL
- 407: 你的代理没有授权
- 408: 请求超时
- 410: 你请求的数据已经被服务端永久删除
-
500 ~ 599(后端问题)
- 5 开头的表示服务端出现了错误
- 500: 服务器内部错误
- 503: 服务器当前不可用(过载或者维护)
- 505: 请求的协议服务器不支持