当前位置: 首页 > news >正文

前后端联调

网关

  • 网关作用(认证授权、流量控制、路由转发等)
  • 网关如何工作(类似前端的路由守卫,访问服务前都经过网关)

http状态码

3xx:重定向
301:永久重定向
302:临时重定向
304:重定向到浏览器本身,即使用浏览器缓存4xx:客户端问题
401:多数情况是没带token,未经授权
403:带了token,但是该角色不允许访问
404:前端地址写错了,或者地址中参数写错了,又或者后端给错了5xx:服务端问题
500:后端代码问题
502:网关本省出了故障
504:网关超时(其实还是服务api超时)
503:服务器问题,服务器过载了

http缓存

  • http缓存在哪里设置(服务代码设置响应头)
  • 强制缓存
强缓存(新鲜度)(一般设置过期时长)
第一次请求---服务器设置响应头:Cache-Control  max-age:31536000(s)浏览器会缓存下文件下一次请求相同资源---浏览器会检查max-age有没有过期若没过期,从缓存中拿资源(此时状态码为200)若过期,重新请求
  • 协商缓存(对比缓存)
协商缓存是服务器端缓存策略
第一次请求---服务器返回资源和资源标识浏览器讲资源存到本地缓存中
下一次请求相同资源---请求时携带资源标识服务器判断版本是否一致若一致,使用缓存资源(304)若不一致,重新请求,返回新的资源和新的资源标识(200)
  • 协商缓存中资源标识
ETag(优先于Last-Modified)请求头中携带的资源标识用的key为If-None-Match
Last-Modified请求头中携带的资源标识用的key为If-Modified-Since
  • f5刷新与缓存的禁用情况
f5刷新是暂时禁用强缓存
清空缓存并硬性重新加载   暂时禁用所有缓存策略,请求一定会到服务器
  • 缓存策略
不同类型的站点有不同的策略,一般通用的做法如下:
html文件    ----协商缓存
html文件中引用的js、css、png    ---强缓存,并设置一年的有效期
商品购物类API   ---不用缓存
其他API   ---强缓存或者协商缓存

post参数约定

如果前端传递的是json类型参数,后端是去解析的json;如果前端传递的是form类型的参数,后端就需要去分割字符串解析

Content-Type的四种格式:
application/x-www-form-urlencoded(表单类型的数据)
application/json
multipart/form-data(表单类型的数据)
text/xml1、Request Payload(json类型参数)
需要前端的处理:前端设置请求头、 json序列化(js数据变成json格式的数据)Content-Type: application/jsonJSON.stringfy(obj)    eg:	  {"key":"value", "key": "value"}2、Form Data(form类型参数)
需要前端处理:前端设置请求头、参数序列化Content-Type: application/x-www-url-encodeqs.stringfy(obj)    eg:	key=value&key=value

前端设置请求头(为安全着想的做法)

xhr.setRequestHeader('abc', 'jsdoi7938798oas97')

url中的编码

encodeURI解析范围不包含如下字符:; , / ? : & = + $- _ . ! ~ * ' ( ) 字母 数字
使用场景:如果URL中的查询参数没有特殊字符,可用于转码整个带中文参数的URL查询参数中刚好有? = &不被解析转化前: location.href = "http://localhost:8080/pro?a=1&b=张三&c=aaa";转化后: location.href = "http://localhost:8080/pro?a=1&b=%E5%BC%A0%E4%B8%89&c=aaa"encodeURIComponent解析范围不包含如下字符:- _ . ! ~ * ' ( ) 字母 数字
使用场景:用于参数的传递,参数包含特殊字符可能会造成间断。比如:var paramUrl = "http://localhost:8080/aa?a=1&b=2&c=3";var url = "http://localhost:8080/pp?a=1&b="+ paramUrl ;应该使用encodeURIComponent(paramUrl)进行转码,结果:http://localhost:8080/pp?            a=1&b=http%3A%2F%2Flocalhost%3A8080%2Faa%3Fa%3D1%26b%3D2%23%26c%3D3
http://www.lryc.cn/news/352120.html

相关文章:

  • 根据配置的mode环境显示不同的index模板
  • hls.js实现分片播放视频
  • K8s 运维架构师实战课程
  • AIGC基础教学:AI+建筑设计,一场划时代变革的序幕已经拉开
  • 领域知识 | 智能驾驶安全领域部分常见概论
  • 力扣刷题---返回word中所有不重复的单词
  • 正点原子LWIP学习笔记(一)lwIP入门
  • 16、设计模式之迭代器模式
  • 自然语言处理实战项目29-深度上下文相关的词嵌入语言模型ELMo的搭建与NLP任务的实战
  • TCP/IP体系模型简介
  • 【ZYNQ】AXI-Quad-SPI SDK 开发记录 测试
  • Django提交表单出错提示错误
  • 鸿蒙开发 组件之间的传值
  • [晕事]今天做了件晕事35 VM发送给gateway太多ARP,导致攻击检查?
  • 虹科干货丨多设备协同无忧:Linux环境下PCAN固定设备ID通道分配指南
  • 【python】flask操作数据库工具SQLAlchemy,详细用法和应用实战
  • web前端项目已有阿里巴巴图标基础上,再次导入阿里巴巴图标的方法
  • 头歌openGauss-存储过程第2关:修改存储过程
  • ThreadLocal简单使用案例
  • 创建型设计模式之建造者模式
  • mainwindow 无菜单栏 可拖动,边界可扩大,动画浮现上边框
  • 机器学习云环境测试
  • 扩散模型自动管道AutoPipeline
  • Map六种遍历方式
  • 集合-1 数组ArrayListLinkedList
  • 42-1 应急响应之账户排查
  • Python3 笔记:sort() 和 sorted() 的区别
  • vue 引入 emoji 表情包
  • mysql 数据库 增量备份
  • SpringBoot之@Builder 注解