卡盟怎么做网站,今天上海新闻综合新闻,深圳网站见,旅游网站反链怎么做网关
网关作用#xff08;认证授权、流量控制、路由转发等#xff09;网关如何工作#xff08;类似前端的路由守卫#xff0c;访问服务前都经过网关#xff09; http状态码
3xx#xff1a;重定向
301#xff1a;永久重定向
302#xff1a;临时重定向
304#xff1a;…网关
网关作用认证授权、流量控制、路由转发等网关如何工作类似前端的路由守卫访问服务前都经过网关 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-Sincef5刷新与缓存的禁用情况
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 Payloadjson类型参数
需要前端的处理前端设置请求头、 json序列化js数据变成json格式的数据Content-Type: application/jsonJSON.stringfy(obj) eg: {key:value, key: value}2、Form Dataform类型参数
需要前端处理前端设置请求头、参数序列化Content-Type: application/x-www-url-encodeqs.stringfy(obj) eg: keyvaluekeyvalue前端设置请求头为安全着想的做法
xhr.setRequestHeader(abc, jsdoi7938798oas97)url中的编码
encodeURI解析范围不包含如下字符; , / ? : $- _ . ! ~ * ( ) 字母 数字
使用场景如果URL中的查询参数没有特殊字符可用于转码整个带中文参数的URL查询参数中刚好有? 不被解析转化前 location.href http://localhost:8080/pro?a1b张三caaa;转化后 location.href http://localhost:8080/pro?a1b%E5%BC%A0%E4%B8%89caaaencodeURIComponent解析范围不包含如下字符- _ . ! ~ * ( ) 字母 数字
使用场景用于参数的传递参数包含特殊字符可能会造成间断。比如var paramUrl http://localhost:8080/aa?a1b2c3;var url http://localhost:8080/pp?a1b paramUrl ;应该使用encodeURIComponent(paramUrl)进行转码结果http://localhost:8080/pp? a1bhttp%3A%2F%2Flocalhost%3A8080%2Faa%3Fa%3D1%26b%3D2%23%26c%3D3