1. HTTP 与 HTTPS 的区别
- HTTP:明文传输,端口80,无加密,易被窃听或窜改。
- HTTPS:SSL/TLS加密传输,端口443,通过数字证书验证身份,防止中间人攻击。
- 混合加密:非对称加密交换密钥,对称加密传输数据。
- 证书机制:由CA颁发,确保服务器身份可信。
2. 常见 HTTP 状态码
- 2xx 乐成:200(OK)、201(Created)。
- 3xx 重定向:301(永久重定向)、302(临时重定向)、304(缓存有用)。
- 4xx 客户端错误:400(请求错误)、401(未认证)、403(克制访问)、404(资源不存在)。
- 5xx 服务器错误:500(内部错误)、502(网关错误)、503(服务不可用)。
3. GET 与 POST 的区别
- 语义:GET获取资源,POST提交数据。
- 参数位置:GET参数在URL中,POST在请求体。
- 安全性:GET参数暴露,POST相对安全(但未加密仍可截获)。
- 缓存:GET可被缓存,POST一般不可。
- 幂等性:GET幂等(多次调用效果雷同),POST非幂等。
4. TCP 与 UDP 的区别
- TCP:面向连接、可靠传输(确认机制/重传)、有序、速度慢(如HTTP、文件传输)。
- UDP:无连接、不可靠、无序、速度快(如视频流、DNS)。
5. TCP 三次握手
- SYN:客户端发送SYN包(seq=x)。
- SYN-ACK:服务端相应SYN(seq=y)和ACK(x+1)。
- ACK:客户端发送ACK(y+1),连接建立。
6. 四次挥手
- FIN:主动方发送FIN包(终止连接)。
- ACK:被动方确认。
- FIN:被动方发送FIN包。
- ACK:主动方确认,等待2MSL后关闭。
7. 强缓存 vs 协商缓存
- 强缓存:直接利用本地缓存(状态码200)。
- 头部:Cache-Control(max-age)、Expires。
- 协商缓存:扣问服务器资源是否变化(状态码304)。
- 头部:Last-Modified/If-Modified-Since、ETag/If-None-Match(优先级更高)。
8. WebSocket 特点
- 全双工通信:服务端可主动推送数据。
- 协议升级:通过HTTP握手(Upgrade: websocket)。
- 实用场景:实时谈天、股票行情等。
9. 跨域解决方案
- CORS:服务端设置Access-Control-Allow-Origin,预检请求(OPTIONS)处理复杂请求。
- JSONP:利用<script>标签跨域,仅支持GET。
- 署理服务器:前端开发服务器署理请求(如webpack-dev-server)。
- nginx反向署理:服务器端转发请求。
10. HTTP/2 新特性
- 多路复用:一个TCP连接并行多个请求,解决队头阻塞。
- 头部压缩:HPACK算法减少头部巨细。
- 服务器推送:主动推送资源(如CSS/JS)。
11. XSS 与 CSRF 防御
- XSS(跨站脚本攻击):
- 防御:输入转义(如<转义为<)、Content Security Policy(CSP)。
- CSRF(跨站请求伪造):
- 防御:Token验证、SameSite Cookie属性、检查Referer头。
12. DNS 解析过程
- 浏览器缓存 → 体系缓存(hosts) → 路由器缓存。
- 本地DNS服务器 → 根DNS → 顶级域(.com)→ 权势巨子DNS(example.com)。
- 递归查询获取IP地点。
13. Cookie/Session/Token
- Cookie:客户端存储,自动携带在请求头,容量小(4KB)。
- Session:服务端存储用户状态,依赖Cookie传递Session ID。
- Token(如JWT):无状态,包罗用户信息的签名令牌,得当分布式体系。
14. HTTPS 握手过程
- 客户端发送支持的加密算法列表。
- 服务端返回选择的算法和数字证书。
- 客户端验证证书,生成对称密钥并用公钥加密发送。
- 服务端私钥解密得到密钥,后续通信利用对称加密。
15. 前端性能优化与网络协议
- 减少请求数:归并文件、雪碧图。
- 压缩资源:Gzip/Brotli压缩,图片格式优化(WebP)。
- CDN加速:就近获取静态资源。
- HTTP缓存策略:合理设置Cache-Control。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |