常用的状态码/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 ⽆权限访问该系统
基本认证方式:认证完成就有权限访问该系统
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是一个随机的字符串