《JAVA八股真解》四、Web

#JAVA##JAVA面经##JAVA内推#

1. TCP 和 UDP 的区别

特征 TCP UDP
连接 面向连接的协议,通信前需建立连接 无连接的协议,发送数据无需事先建立连接
可靠性 可靠传输,提供错误检测、重传机制 不保证数据包顺序和完整性,可能丢失或重复
顺序性 数据按序到达,支持乱序重排 不保证数据包到达顺序
面向 面向字节流的协议 面向数据报的协议
适用性 适用于需要高可靠性的场景,如文件传输、网页浏览 适用于对实时性要求高的场景,如视频直播、在线游戏
头部开销 头部较大,占用较多网络资源 头部较小,占用网络资源较少

总结:TCP是一种可靠的、面向连接的协议,适合需要确保数据完整性的场景;UDP是一种不可靠的、无连接的协议,适用于对延迟敏感的应用。

2. 常见的 HTTP 状态码

状态码 类别 描述
1xx 信息性状态码 服务器响应请求,但需要客户端继续执行操作
2xx 成功状态码 请求成功处理,例如:200 - 请求成功,201 - 创建成功
3xx 重定向状态码 客户端需进一步操作才能完成请求,例如:301 - 永久重定向,302 - 临时重定向
4xx 客户端错误状态码 请求语法错误或无法完成请求,例如:400 - 请求格式错误,401 - 未授权,403 - 禁止访问,404 - 找不到资源
5xx 服务器错误状态码 服务器内部错误导致请求失败,例如:500 - 服务器内部错误,502 - 网关错误,503 - 服务不可用

提示:了解常见状态码有助于快速定位问题,提升调试效率。

3. GET 和 POST 的区别

特征 GET POST
参数 参数附加在URL中,以键值对形式传递 参数包含在请求体中,不显示在URL中
安全性 不安全,参数可见于URL 相对安全,参数不在URL中暴露
缓存 可以被浏览器缓存 不能被缓存
长度限制 有长度限制(通常2048字符),受浏览器限制 无长度限制,理论上可传输大量数据
用途 用于获取资源,如查询数据 用于提交数据,如表单提交、文件上传

应用场景

  • 使用GET时,应避免传输敏感信息(如密码)。
  • 使用POST时,适合发送大量数据或敏感信息。

4. Cookie 和 Session 的区别

特征 Cookie Session
存储位置 存储在客户端浏览器中 存储在服务器端内存或数据库中
安全性 相对较低,容易被窃取 相对较高,服务器控制
大小限制 单个Cookie最大4KB,总数量有限制 无大小限制,取决于服务器配置
生命周期 可设置过期时间,持久化保存 依赖会话,关闭浏览器后失效
使用方式 客户端保存,每次请求自动携带 服务器维护,通过Session ID识别用户

补充说明

  • Cookie可用于记住用户偏好设置,但不应存储敏感信息。
  • Session用于维护用户登录状态,常配合Cookie中的Session ID使用。

5. 过滤器和拦截器的区别

alt

对比项 过滤器(Filter) 拦截器(Interceptor)
所属层次 属于Servlet规范,由容器管理 属于Spring框架,由Spring管理
触发时机 在请求进入Servlet之前进行预处理,在响应返回之前进行后处理 在请求进入Controller之前进行预处理,在方法执行前后进行拦截
作用范围 适用于所有请求,包括静态资源、JSP等 仅适用于Spring MVC的控制器方法
实现方式 实现javax.servlet.Filter接口 实现HandlerInterceptor接口
是否支持AOP 不支持 支持,可通过切面编程增强功能
是否支持事务 不支持 支持,可在拦截器中开启事务

图示说明

[请求] → Filter → [Spring MVC] → Interceptor → Controller → [响应]

实际应用

  • 使用过滤器进行统一编码、日志记录、权限校验等通用操作。
  • 使用拦截器进行业务逻辑控制,如登录验证、权限检查、性能监控等。
#JAVA##java##JAVA面经#

本专栏在精不在多,内容分为八股文、大厂真实面经,面试通过后将offer和面试题私发给我,可退还专栏的收益部分费用。欢迎大家共建专栏

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务