HTTP的工作流程:
- 和服务器建立链接(三次握手)
1.1、客户端发送一个消息给到服务端
1.2、服务端回给客户端一个消息
1.3、客户端再回给服务端一个消息 - 建立链接后,发送一个请求给服务器(请求 request- req)
接下来看一个**完整的请求报文
POST /user HTTP/1.1 # 请求行
Host: www.user.com
Content-Type: application/x-www-form-urlencoded--- 提交的数据类型
accept: application/json 希望服务器返回的数据类型
User-agent: Mozilla/5.0. # 以上是首部
#(此处必须有一空行) # 空行分割header和请求内容
name=world&password=12313 # 请求体
- 服务器接受到请求以后进行相应的处理并给出一个回应(响应 response-res)
- 断开于服务器的链接(三次挥手)
### 常见的HTTP响应状态码
通常会出现五种状态码:
- 100 ~ 199
- 200 ~ 299
- 300 ~ 399
- 400 ~ 499
- 500 ~ 599
100 ~ 199
- 一般我们看不到,因为表示请求继续
- 100: 继续请求,前面的一部分内容服务端已经接受到了,正在等待后续内容
- 101: 请求者已经准备切换协议,服务器页表示同意
200 ~ 299
- 2 开头的都是表示成功,本次请求成功了,只不过不一样的状态码有不一样的含义(语义化)
- 200: 标准请求成功(一般表示服务端提供的是网页)**
- 201: 创建成功(一般是注册的时候,表示新用户信息已经添加到数据库)
- 203: 表示服务器已经成功处理了请求,但是返回的信息可能来自另一源
- 204: 服务端已经成功处理了请求,但是没有任何数据返回
300 ~ 399
- 3 开头也是成功的一种,但是一般表示重定向
- 301: 永久重定向****
- 302: 临时重定向
- 304: 使用的是缓存的数据*******(get 请求默认都会被缓存)
- 305: 使用代理
400 ~ 499
- 4 开头表示客户端出现错误了
- 400: 请求的语法服务端不认识
- 401: 未授权(你要登录的网站需要授权登录)
- 403: 服务器拒绝了你的请求****
- 404: 服务器找不到你请求的 URL*****
- 407: 你的代理没有授权
- 408: 请求超时
- 410: 你请求的数据已经被服务端永久删除
500 ~ 599
- 5 开头的表示服务端出现了错误
- 500: 服务器内部错误 ****
- 503: 服务器当前不可用(过载或者维护)
- 505: 请求的协议服务器不支持
常见的 HTTP 请求方式
- GET: 一般用于获取一些信息使用(获取列表)
- POST: 一般用于发送一些数据给服务端(登录)
- PUT: 一般用于发送一些数据给服务当让其添加新数据(全体更新)
- PATCH: 是和 PUT 方式类似的一个方式,一般用于更新局部数据(更新密码)
- DELETE: 一般用于删除某些数据
- OPTIONS: 允许客户端查看服务端性能
restfulAPI
是api接口的标准---->利用请求方式作为动作
包括:
- GET(SELECT):从服务器取出资源(一项或多项)
- POST(CREATE):在服务器新建一个资源
- PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)
- PATCH(UPDATE):在服务器更新(局部更新)资源(客户端提供改变的属性)
- DELETE(DELETE):从服务器删除资源
例如