前端面试 -HTTP系列
http和https 的区别?
端口 | 经济 | 安全性 | 响应速度 | |
---|---|---|---|---|
http | 80端口 | 不需要 | 明文传输,安全性差 | 页面响应速度快,使用tcp的3次握手 |
https | 443端口 | 费钱SSL需要ca 证书 | SSL加密 | 慢 还要加ssl的9个包 |
get和post请求区别?
请求参数 | 支持刷新 | 是否可被浏览器缓存 | 功能 | |
---|---|---|---|---|
get | 放在url里,并且长度受限制(2048字符)安全性较差 | 在浏览器中可直接访问可以刷新回退 | 可以 | 查数据 |
post | 在请求体body中,长度不受限制 安全性好 | 不能在浏览器中直接访问 | 不能 | 增删改 |
TCP三次握手
- 建立连接时,客户端发送syn 同步序列编号 包(syn=j)到服务器 , 进入SYN_SENT状态
- 服务器收到syn包并发送确认包 ack(j+1) 和自己的syn(y)
- 客户端收到服务器的SYN+ACK包 ,向服务器发送ack确认(y+1)
TCP四次挥手
1.客户端发送FIN 连接释放报文
2.服务器收到FIN并发送确认包ACK
3.服务器发送FIN
4.客户端发送ACK
为什么2.3不合并起来,因为2.3中间有可能还有数据在发送,不能提前发送FIN
HTTP 缓存有哪几种?
两种 协商缓存和强制缓存, 根据是否需要向服务器重新发起HTTP请求 区分
强制缓存: 向浏览器缓存查找该请求结果 通过Cache-Control
和 Expires
决定是否使用缓存。
不存在则重新向服务器发送(像第一次)、存在则使用本地缓存、存在但失效了 协商缓存
协商缓存:向服务器请求结果, 由服务器根据缓存标识 Last-Modified / If-Modified-Since
和 Etag / If-None-Match
决定是否使用缓存的过程 成功304 失败返回200和请求内容
HTTP 状态码知道哪些?分别什么意思?
100 Continue 继续,一般在发送post请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息
200 OK 正常返回信息
201 Created 请求成功并且服务器创建了新的资源
202 Accepted 服务器已接受请求,但尚未处理
301 Moved Permanently 请求的网页已永久移动到新位置。
302 Found 临时性重定向。
303 See Other 临时性重定向,且总是使用 GET 请求新的 URI。
304 Not Modified 自从上次请求后,请求的网页未修改过。
400 Bad Request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。
401 Unauthorized 请求未授权。
403 Forbidden 禁止访问。
404 Not Found 找不到如何与 URI 相匹配的资源。
500 Internal Server Error 最常见的服务器端错误。
503 Service Unavailable 服务器端暂时无法处理请求(可能是过载或维护)。
Cookie V.S. LocalStorage V.S. SessionStorage V.S. Session
cookie :一般由服务器返回客户端,报存到客户端,用于存用户登录信息。请求时会在header里,所有不安全。存储大小约5k
session:存在服务器端,用来保存每个用户的专信息。大小不限
webstorage :存在客户端,安全性高 大小为5M左右。
tcp 和 udp的区别
tcp是面向连接,可靠性高,适合大量数据传输,需要三次握手建立连接,比较耗时,
upd面向非连接,可靠性底,适合少量数据,但是连接速度快,延迟小。适合视频语音等。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库