work
工作
记录一下从学生时代过渡到工作,需要的技能和工具。
版本管理:git
开发环境:Linux的命令行使用
接口测试、联调:apipost、postman、swagger、JMeter
定位bug
- 查日志异常
- 查线上事故
其他
- 日志打印与上报:日志库、Prometheus
- 日志收集与分析:elk stack、Prometheus
- 容器编排:kubernates
- 链路追踪:openmetery
- 错误与异常处理
- 备份与恢复
- 接口文档:swagger
- 接口测试工具:apifox、postman
- 性能分析工具:pprof
正向代理和反向代理
负载均衡
CDN
Restful
分布式锁原理和使用
同步:阻塞等待返回
异步:告诉你需要执行,只是触发流程,并不等待,常用实现有,
- 异步实现:用户调用服务端的接口,接口逻辑只是,记录一个消息到消息队列或其他的存储组件中,然后就返回结果,告诉用户记下了。具体的执行时间调用方并不关心。
- 结果查询:你执行完了,得通知我吧,所以常用的方式有
- 用户主动轮训,每隔一段时间请求服务端提供的接口(这里调哪个,具体怎么取就双方自行约定了)
- 用户注册回调,服务端执行完了后调用用户注册好的回调通知用户。
鉴权
cookie
session
toke
JWT
开发规范
请求和结果、耗时、trace等日志打印放在拦截器或中间件层去处理。
测试用例
集成和部署:CI&CD
项目、目录、文件分类管理
- dao层
- model层
- MVC
Web
同源跨域问题
同源是指,域名,协议,端口相同,非同源的客户端脚本在没有明确授权的情况下,不能读写对方资源,在请求数据时,浏览器会在控制台中报一个异常,提示拒绝访问。非同源受到的限制:
- cookie不能读取
- dom无法获得
- ajax请求不能发送
跨域是指跨域名的访问,以下情况都属于跨域:
- 域名不同 www.jd.com与 www.taobao.com
- 域名相同,端口不同 www.jd.com:8080 与 www.jd.com:8081
- 二级域名不同 http://item.jd.com 与 http://miaosha.jd.com
跨域问题是浏览器对于ajax请求的一种安全限制:一个页面发起的ajax请求,只能是于当前页同域名的路径,这能有效的阻止跨站攻击。
因此:跨域问题 是针对ajax的一种限制。
- JSONP跨域:JSON with Padding
- CORS跨域:全称”跨域资源共享”(Cross-origin resource sharing)
JSONP
JSONP:由于同源策略的限制,XmlHttpRequest只允许请求当前源(域名、协议、端口)的资源。而动态添加一个