[特殊字符] 《网络知识和Servlet重点知识整理》
一、网络作用基础认知核心作用实现不同设备之间的数据传输与通信支撑互联网应用网页、APP、游戏、视频等。信息传递客户端 ↔ 服务器资源共享文件、数据库、计算资源分布式协作微服务、云计算、分布式系统二、协议和标准面试核心板块1. URL统一资源定位符格式协议://域名:端口/路径?查询参数#锚点示例https://www.example.com:8080/api/user?id123#profile作用标识网络中资源的唯一位置2. HTTP协议超文本传输协议✅ 请求/响应格式请求格式请求行方法 URL 协议版本 请求头Host, Cookie, User-Agent等 空行 请求体POST数据响应格式状态行协议版本 状态码 状态描述 响应头Content-Type, Set-Cookie等 空行 响应体HTML/JSON等✅ 请求方法GET / POST / PUT / DELETE / HEAD / OPTIONSGET获取资源幂等参数在URL长度受限可被缓存POST提交数据非幂等参数在请求体无长度限制不可缓存PUT更新资源幂等DELETE删除资源幂等HEAD只获取响应头用于检查资源是否存在或缓存有效性OPTIONS获取服务器支持的方法✅ 响应状态码2xx 成功200 OK, 201 Created, 204 No Content3xx 重定向301 Moved Permanently, 302 Found, 304 Not Modified4xx 客户端错误400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 405 Method Not Allowed5xx 服务端错误500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable, 504 Gateway Timeout✅ 请求/响应头常见字段Content-Type请求/响应体的媒体类型如 application/jsonSet-Cookie服务器设置客户端CookieCookie客户端发送给服务器的CookieUser-Agent浏览器/客户端标识Accept客户端可接受的响应类型Cache-Control缓存控制策略✅ Cookie SessionCookie存储在客户端随每次请求发送有大小限制4KB可设置过期时间Session存储在服务端内存/Redis通过Cookie中的SessionID关联客户端区别存储位置Cookie在客户端Session在服务端安全性Session更安全数据不暴露性能Cookie轻量Session消耗服务端资源分布式Session需共享Redis/JWT3. UDP协议用户数据报协议特点无连接、不可靠、面向报文、速度快、开销小应用场景视频直播、语音通话、DNS查询、游戏实时交互报头结构源端口、目的端口、长度、校验和传输方式直接发送不保证到达或顺序4. TCP协议传输控制协议→面试最高频✅ 报头结构重点源端口、目的端口序列号、确认序列号标志位URG/ACK/PSH/RST/SYN/FIN窗口大小流量控制校验和、紧急指针等✅ 可靠性机制确认应答ACK接收方收到数据后发送ACK确认超时重传发送方未收到ACK则重发序列号确认号保证数据有序、无丢失、无重复面向连接建立连接后才传输数据面向字节流数据按字节流传输不保留边界✅ 连接管理三次握手 四次挥手三次握手建立连接客户端 → 服务器SYN1, seqx服务器 → 客户端SYN1, ACK1, seqy, ackx1客户端 → 服务器ACK1, seqx1, acky1目的同步初始序列号确保双方都能收发数据为什么不能两次 防止历史连接占用资源旧SYN包被新连接误认四次挥手断开连接客户端 → 服务器FIN1, sequ服务器 → 客户端ACK1, acku1服务器 → 客户端FIN1, ACK1, seqv, acku1客户端 → 服务器ACK1, ackv1TIME_WAIT状态客户端等待2MSL最大段生命周期确保最后一个ACK被服务器收到同时避免旧数据包干扰新连接状态转移图面试常考CLOSED → SYN_SENT → ESTABLISHED → FIN_WAIT_1 → FIN_WAIT_2 → TIME_WAIT → CLOSED服务器端同理✅ 流量控制 拥塞控制流量控制通过滑动窗口机制接收方告诉发送方自己还能接收多少数据窗口大小拥塞控制慢启动窗口指数增长拥塞避免窗口线性增长快重传收到3个重复ACK立即重传快恢复窗口减半后线性增长MSSMaximum Segment SizeTCP报文段最大数据长度避免IP分片5. IP协议网际协议报头结构版本、首部长度、服务类型、总长度、标识、标志、片偏移、生存时间TTL、协议、首部校验和、源IP、目的IPIP地址分类A类1.0.0.0 ~ 126.255.255.255默认掩码255.0.0.0B类128.0.0.0 ~ 191.255.255.255默认掩码255.255.0.0C类192.0.0.0 ~ 223.255.255.255默认掩码255.255.255.0D类组播地址224.0.0.0 ~ 239.255.255.255E类保留地址240.0.0.0 ~ 255.255.255.255IP路由根据目的IP地址选择下一跳路径IP分片当数据大于MTU最大传输单元时分片传输接收端重组6. ARP协议地址解析协议作用将IP地址解析为MAC地址过程主机A广播ARP请求“谁有192.168.1.1请告诉我你的MAC”主机B收到后单播ARP响应“我是192.168.1.1MAC是XX:XX:XX:XX:XX:XX”主机A缓存ARP表后续通信直接使用MAC地址7. DNS协议域名系统作用将域名如 www.example.com解析为IP地址解析过程递归迭代本地DNS缓存 → 本地hosts文件递归查询本地DNS服务器 → 根DNS → 顶级域DNS.com→ 权威DNS服务器返回IP地址给客户端常用记录类型AIPv4、AAAAIPv6、CNAME别名、MX邮件交换、TXT文本验证8. 浏览器从输入URL到看到最终效果发生了什么综合大题完整流程DNS解析将域名解析为IP地址TCP连接建立TCP三次握手HTTP请求发送HTTP请求报文服务器处理Web服务器接收请求调用后端服务如Servlet服务器响应生成HTTP响应报文状态码、响应头、响应体浏览器渲染解析HTML/CSS/JS构建DOM树、CSSOM树、渲染树布局绘制TCP断开四次挥手关闭连接缓存机制浏览器可能缓存资源Cache-Control, ETag三、广域网 vs 局域网维度广域网WAN局域网LAN覆盖范围城市、国家、全球办公室、校园、家庭传输速率较低早期56K现在光纤可达Gbps较高百兆/千兆/万兆以太网设备路由器、调制解调器、广域网链路交换机、集线器、无线AP协议PPP、HDLC、Frame RelayEthernet、Wi-Fi802.11成本高低设备交换机工作在数据链路层根据MAC地址转发帧路由器工作在网络层根据IP地址转发数据包四、网络分层OSI vs TCP/IP1. OSI七层模型理论模型层级功能协议/设备示例物理层比特流传输网线、光纤、集线器数据链路层帧传输、MAC地址、差错检测交换机、PPP、HDLC网络层路由、IP地址路由器、IP、ICMP传输层端到端通信、可靠性TCP、UDP会话层建立、管理、终止会话RPC、NetBIOS表示层数据格式转换、加密解密JPEG、SSL/TLS、ASCII应用层用户接口HTTP、FTP、SMTP、DNS2. TCP/IP四层模型实际应用层级对应OSI层协议/设备示例应用层765层HTTP、FTP、DNS、SMTP传输层4层TCP、UDP网际层网络层3层IP、ICMP、ARP网络接口层12层以太网、Wi-Fi、交换机五、Servlet应用Java Web核心1. 什么是ServletJava编写的服务器端程序用于处理HTTP请求生成动态响应运行在Servlet容器如Tomcat、Jetty中实现了javax.servlet.Servlet接口2. Servlet项目的创建使用IDEA/Eclipse创建Dynamic Web Project添加Servlet API依赖如javax.servlet-api继承HttpServlet类重写doGet()/doPost()方法3. Servlet项目的部署Windows部署配置Tomcat环境变量将项目打包为WAR放入webapps目录启动Tomcat访问http://localhost:8080/项目名Linux部署安装JDK、Tomcat上传WAR包至/opt/tomcat/webapps启动Tomcatbin/startup.sh访问http://服务器IP:8080/项目名4. Servlet的生命周期面试必考init()Servlet初始化时调用一次构造器后service()每次请求时调用根据请求方法分发到doGet()/doPost()destroy()Servlet销毁前调用服务器关闭时注意Servlet是单例多线程的不要在Servlet中使用实例变量线程安全问题5. 常见APIHttpServletRequest (req)getParameter()获取请求参数getHeader()获取请求头getSession()获取SessiongetCookies()获取CookiegetMethod()获取请求方法GET/POSTHttpServletResponse (resp)setContentType()设置响应类型如text/htmlsetCharacterEncoding()设置字符编码getWriter()获取输出流写入响应体sendRedirect()重定向到另一个URLaddCookie()添加Cookie到响应 面试/笔试高频总结必背模块高频考点HTTPGET/POST区别、状态码、Cookie/Session、请求/响应头TCP三次握手/四次挥手、可靠性机制、滑动窗口、拥塞控制、MSS、TIME_WAITIP/ARP/DNSIP地址分类、ARP解析过程、DNS解析流程网络分层OSI vs TCP/IP、各层功能、对应设备Servlet生命周期init/service/destroy、req/resp常用方法、多线程安全、部署流程 学习建议先理解原理再背面试题比如TCP三次握手先理解“为什么要同步序列号”再背步骤。画图记忆三次握手、四次挥手、网络分层、浏览器请求流程建议手绘流程图。动手实践用Java写一个简单的Servlet部署到Tomcat观察日志和网络抓包。刷真题针对字节、阿里、腾讯等大厂的真题反复练习“从输入URL到页面显示发生了什么”这类综合题。✅最终结论这张思维导图覆盖了Java后端面试中网络Servlet的90%核心考点。掌握这些内容足以应对绝大多数互联网公司的笔试和一面。