HTTP1.0与HTTP1.1的区别及TCP三次握手、四次挥手解析
版权申诉
140 浏览量
更新于2024-07-21
收藏 727KB PDF 举报
"2020面试题总结——网络篇"
本文主要涵盖了网络领域的两个核心概念:HTTP协议的版本差异和TCP连接的三次握手与四次挥手过程。以下是详细解释:
1. HTTP1.0与HTTP1.1的区别:
- **可拓展性**:HTTP1.1增强了协议的可扩展性,允许通过添加新的头部来定义新的功能。
- **缓存控制**:HTTP1.1引入了更精细的缓存机制,使得服务器和客户端能更好地控制资源的缓存策略。
- **带宽优化**:通过分块传输编码,HTTP1.1可以更有效地利用网络带宽,减少数据传输的延迟。
- **长连接**:HTTP1.1支持持久连接(Connect: keep-alive),允许在单个TCP连接上处理多个请求和响应,减少了连接建立和关闭的开销。
- **消息传递**:HTTP1.1引入了管线化,允许同时发送多个请求,提高了效率。
- **Host头域**:允许在同一IP地址上的多台服务器提供多个不同域名的服务。
- **错误提示**:提供了更详细的错误状态码,便于诊断问题。
- **内容协商**:服务器和客户端可以协商决定返回哪种形式的内容,例如根据浏览器的接受类型返回不同的MIME类型。
2. TCP的三次握手与四次挥手:
- **三次握手**:
- 第一次握手:客户端发送SYN报文(SYN=1, seq=x),进入SYN_SEND状态。
- 第二次握手:服务器响应SYN+ACK报文(SYN=1, ACK=1, seq=y, ACKnum=x+1),进入SYN_RCVD状态。
- 第三次握手:客户端回应ACK报文(ACK=1, ACKnum=y+1),进入ESTABLISHED状态,服务器收到后也进入ESTABLISHED状态,连接建立完成。
- 三次握手是为了防止已失效的连接请求报文导致的错误连接,确保双方都有能力接收和发送数据。
- **四次挥手**:
- 第一次挥手:客户端发送FIN报文(FIN=1, seq=a),进入FIN_WAIT_1状态。
- 第二次挥手:服务器回应ACK报文(ACK=1, ACKnum=a+1),进入CLOSE_WAIT状态,客户端进入FIN_WAIT_2状态。
- 第三次挥手:服务器发送FIN报文(FIN=1, seq=b),进入LAST_ACK状态。
- 第四次挥手:客户端收到FIN后发送ACK报文(ACK=1, ACKnum=b+1),进入TIME_WAIT状态,等待一段时间确保服务器收到确认后关闭连接。
- 四次挥手是因为TCP是双向通道,双方都需要单独确认关闭连接,以确保所有数据传输完成,避免数据丢失。
这两个知识点在网络面试中是非常常见的,理解它们对于深入理解互联网通信机制至关重要。在面试中,面试者可能需要详细解释这些过程,并讨论它们在实际网络应用中的作用和意义。
115 浏览量
217 浏览量
201 浏览量
143 浏览量
2021-11-12 上传
2019-07-18 上传
151 浏览量
1198 浏览量
2024-02-21 上传
Java天下第1
- 粉丝: 563
- 资源: 65
最新资源
- Stickman Hangman Game in JavaScript with Source Code.zip
- 饭准备的诺拉api
- gopacket:提供Go的封包处理能力
- theme-agnoster
- service_marketplace:Accolite大学项目一个以用户友好且可扩展的方式连接客户和服务提供商的平台
- ssm酒厂原料管理系统毕业设计程序
- backstitch:适用于您现有React UI的Web组件API
- AutoGreen
- Query Server TCL-开源
- MMG.rar_MMG
- Site Bookmark App using JavaScript Free Source Code.zip
- css-essentials-css-issue-bot-9000-nyc03-seng-ft-051120
- Xshell-Personal6.0.0204p.zip
- govim是用Go编写的Vim8的Go开发插件-Golang开发
- Ticker
- xcrczpky.zip_三维路径规划