常用的状态码/cookie/session/token的请求流程

一、常⽤状态码

  当客户端向服务端发送⼀个请求后,服务端响应回复返回给客户端,在返回的信息中会包含⼀个HTTP请求头的状 态码信息⽤以响应客户端的请求。在⽹站https://http.cat中可以看⻅各个不同表情的状态码的显示,如调⽤https:/ /http.cat/504就会显示如下对应的信息。

常⽤的状态码具体为:

200 请求成功

201 created :添加资源成功

204 No Content :删除资源成功

301 永久重定向(京东为例www.360buy.com永久重定向到www.jd.com)

 302 临时重定项

400 Bad Request 客户端请求错误

所有的400,都是客户端的问题:

第1种:请求头不对

 

 第2种:请求参数不对

 401 Unauthorized ⽆权限访问该系统

 

 认证方式(授权): 1.基本 basic   2.常规 digest  3.自定义  4.oauth2.0 (微信)

 

基本认证方式:认证完成就有权限访问该系统

 

 403 Forbidden 有权限但是禁⽌访问

 

 

 404 请求的资源不存在

 

 405 不被允许的请求⽅法

 

 

特殊场景,四个请求方法都提供了,操作的时候还是出现了405,需要把IP地址加入到安全体系的白名单

415 只有请求头不对

500 服务器内部错误

504 GateWay Timeout网关超时(不一定是程序员的代码的问题,也可能是第三方的问题)

 

4个常用的的请求头:

cookie: 反爬虫 ,认证授权

referer:请求目标地址是从哪里来的

content-type:代表返回的响应数据是什么样的数据格式

user-agent:代表的是访问目标服务器,是通过什么来访问

以下以拉勾网职位搜索为例:

 

 

二、COOKIE/  SESSION/  TOKEN请求流程

Set-cookie:服务端把生成的认证凭证信息返回给客户端

  HTTP是一个无状态的协议,所以也就导致了COOKIE技术的发展,通过COOKIE能够记下用户操作的行为状态,但是COOKIE它是存储在客户端的,所以不安全,为了解决安全问题,SESSION诞生,SESSION它是存储在服务端,相对来说比较安全。后面移动互联网诞生,就有了TOKEN,TOKEN本质上是SESSION原理实现的,它成为一个令牌,TOKEN的实现技术是JWT的技术。

COOKIE:

1、存储在客户端 2、不安全

COOKIE的请求流程:

1.客户端输入账户密码登录成功

2.在服务端生成COOKIE的信息,通过响应头中的SET-COOKIE把生成的COOKIE返回给客户端

3.客户端在下次请求的时候,通过请求头中的cookie把返回的cookie带上发送给服务端,服务端进行内部验证

 

 

SESSION的请求流程:

1.客户端输入账户密码登陆成功

2.在服务端会生成SESSIONID,同时存储在服务端本地,通过响应头中的Set-cookie把生成的SESSIONID返回客户端

3.客户端接收到SESSIONID后

4.客户端再次请求服务端(比如访问个人主页),会在请求头的cookie中带上SESSIONID发送给服务端

5.服务端接收到客户端发送过来的SESSIONID,与存储在服务端本地的SESSIONID之间进行对比,如果一致,允许访问个人主页,如果不一致,就会重定向到登录的页面

 

TOKEN特点:

1.每次登录成功后,生成的TOKEN都是不一样的

2.返回的token是一个随机的字符串

 

 

 

 

posted @ 2022-04-18 16:40  lm970418  阅读(263)  评论(0编辑  收藏  举报