TCP连接与HTTP事务:从三次握手到HTTP请求响应

需积分: 35 69 下载量 68 浏览量 更新于2024-08-09 收藏 8.71MB PDF 举报
本文主要探讨了HTTP协议的工作流程及其与TCP协议的关系,并涉及了Linux运维面试中的常见问题,包括Nginx代理的日志记录、iptables连接跟踪表满的问题、Linux Nginx+PHP环境下PHP-FPM高负载的处理、MySQL主从复制及故障切换策略、数据恢复方法以及排查网站慢的原因。 在HTTP协议中,基于TCP的连接过程至关重要,因为TCP协议提供面向连接的、可靠的数据传输服务。"三次握手"确保了连接的建立,保证了数据的完整性和顺序性,这对于HTTP传输网页等大量且需保持完整性的数据是必要的。HTTP的工作流程包括连接建立、请求发送、服务器响应和连接断开四个步骤。 在Linux运维方面,面临的问题包括: 1. 如何使Nginx在代理时记录客户端IP而非代理IP,这通常需要配置Nginx的日志格式或使用反向代理设置。 2. 解决`KERNEL: NF_CONNTRACK: TABLEFULL, DROPPING PACKET.`报错,这表明iptables的连接跟踪表已满,解决方案可能涉及增大表大小或者优化防火墙规则。 3. PHP-FPM进程高负载可能是PHP脚本效率低、资源占用过多或配置不当等原因,可以通过调整PHP-FPM配置、优化代码或增加资源限制来解决。 4. MySQL主从复制中,主库宕机时,应先确认所有relay log已读取,选择新的主库,更新配置,重置主库并创建同步用户,最后切换应用程序连接。 5. 数据误删除后,恢复思路可能涉及备份还原、日志文件回溯或使用专门的数据库恢复工具。 6. 网站打开慢可能由于MySQL数据库访问慢导致,需要检查系统状态(如CPU、内存、IO、网络)、MySQL参数优化(如max_connect_errors、connect_timeout等)以找出性能瓶颈。 这些内容对于理解和解决实际运维中的问题具有很高的参考价值,同时也是面试中可能涉及的关键知识点。