凡有竞争,必然多维。你在核心能力上与别人差距不太大的时候,一定要尝试拓展维度。你每个维度比别人多一点竞争力,加起来就会变成很大的竞争力。
根据计划,第一章节介绍【软件测试理论】部分,目前已输出九篇文章:
下面开始我的第十篇文章,分享【HTTP协议常见面试题一】。
一、get和post区别
- get在浏览器回退时是无害的,而post会再次提交请求
- get请求会被浏览器主动缓存,而post不会
- get产生一个tcp数据包,post会产生两个tcp包(一次header,一次body)
- get参数通过URL传递,post放在Requset Body中
二、状态码
三、keep-alive:
- HTTP协议采用请求-应答模式,当使用非Keep-Alive模式时,每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接,当使用keep-alive 时,使客户端到服务器端的链接持续有效,当出现对服务器的后续请求时,避免了建立或者重新建立连接
- keep-alive是1.1版本才有
四、option
- CORS跨域请求时,客户端会先发起一个option方法的预检请求,来知道服务端是否允许跨域请求。
五、Cookie/Session
- 因为http是无状态请求,每个请求都是完全独立的,服务端无法确认当前访问者的身份信息,所以服务器与浏览器为了进行会话跟踪,就必须主动的去维护一个状态,这个状态用于告知服务端前后两个请求是否来自同一浏览器。而这个状态需要通过 Cookie 或者 Session 去实现。
- Cookie存储在客户端,大小最多4k,可以设置过期时间
- Session是基于Cookie 实现的,SessionID 会被存储到客户端的Cookie 中,保存在服务器端,所以理论上可以很大,一般失效时间较短,客户端关闭(默认情况下)或者Session超时都会失效。
- Session比Cookie 安全,Session是存储在服务器端的,Cookie是存储在客户端的。
- Cookie使用注意点
- value:如果作用于登录状态,需要加密。
- http-only:不能通过JavaScript访问到Cookie,防止XSS攻击。
- same-site:不能在跨域请求中携带Cookie,防止CSRF攻击。
- SessionID 是连接 Cookie和 Session的一道桥梁,大部分系统也是根据此原理来验证用户登录状态。
以上原文来自我的公众号【不只是测试】,扫描加关注哦O(∩_∩)O~