TCP/HTTP链接过程解析

HTTP链接过程

如果我们在浏览器输入了www.baidu.com的网址,在网络链接正常的情况下,浏览器则会进入到百度的首页,呈现给我们。或许我们都知道使用,却不知道底层是先有以下几个步骤完成:

  1. 浏览器分析直接指向的URL;
  2. DNS域名解析IP地址;
  3. 浏览器和服务器三次握手建立链接;
  4. 浏览器发送请求报文段;
  5. 服务器解析请求报文段;
  6. 服务器回复请求报文段,其中包含请求信息以及html文件;
  7. 释放TCP断开连接;
  8. 解析报文段,呈现在浏览器中;
    以上8个步骤完成,才是一次真正的网址访问的完成。

DNS域名解析

DNS(Domain Name System),域名系统,用来便于把人们使用的域名转换成IP地址。DNS系统在设计的时候是一个联机分布式数据库系统。DNS让大多数域名在本地解析,少量在因特网上解析。
域名到IP地址的解析过程如下:当某一个进程需要解析IP地址是,先调用解析程序,把待解析的域名放在DNS请求报文中,以UDP数据报的方式发给本地域名服务器,如果找到IP地址,则把IP地址返回给应答报文中,进程获取到IP地址后即可进行通信。

HTTP请求报文段

HTTP是面向文本的,报文段通常由三个部分组成:1.开始行。2.首部行。3.实体主体。
其中请求行有三个内容:方法,URL,http的版本;
在这里插入图片描述
常见的HTTP请求方法由9种:
在这里插入图片描述
其中HEAD,GET,OPTIONS,TRACE这四种方法是安全的,因为不修改服务器资源。

HTTP请求内容2-4行是HTTP请求字段:
在这里插入图片描述
其中值得注意的是连接方式,由两种选择,分别是短链接(close),表示只应答一次即关闭连接。长链接(Keep-alive),表示建立通信连接之后,可以实现多次应答,等待主动关闭,这样会节省不停请求建立链接的开销。
在所有的头部字段之后,HTTP请求则会包含一个空行,用来表示头部字段的结束。

HTTP应答报文

一个HTTP应答报文的例子:在这里插入图片描述
其中第一行受状态行。“ 200 ok”表示的是状态码和状态信息。在这里插入图片描述
剩下的几行就是HTTP报文段的头部字段。
HTTP协议是一种无状态的协议,每个HTTP请求没有任何上下文关系。为了适应现在交互式的web应用,我们使用Cookie来保持HTTP的连接状态。它是服务器发送给客户端的特殊信息,客户端每次想服务器发送请求带上cookie信息,此时服务器则可以区分不同用户,就可以完成类似基于浏览器的自动登录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非扫描版TCP/IP详解卷一,你值得拥有: 《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输的不同分组。对tcpdump输出的研究可以帮助理解不同协议如何工作。 本书适合作为计算机专业学生学习网络的教材和教师参考书。也适用于研究网络的技术人员。 目 录 译者序 前言 第1章 概述 1 1.1 引言 1 1.2 分层 1 1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 1.11 RFC 10 1.12 标准的简单服务 11 1.13 互联网 12 1.14 实现 12 1.15 应用编程接口 12 1.16 测试网络 13 1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口 20 2.8 最大传输单元MTU 21 2.9 路径MTU 21 2.10 串行线路吞吐量计算 21 2.11 小结 22 第3章 IP:网际协议 24 3.1 引言 24 3.2 IP首部 24 3.3 IP路由选择 27 3.4 子网寻址 30 3.5 子网掩码 32 3.6 特殊情况的IP地址 33 3.7 一个子网的例子 33 3.8 ifconfig命令 35 3.9 netstat命令 36 3.10 IP的未来 36 3.11 小结 37 第4章 ARP:地址解析协议 38 4.1 引言 38 4.2 一个例子 38 4.3 ARP高速缓存 40 4.4 ARP的分组格式 40 4.5 ARP举例 41 4.5.1 一般的例子 41 4.5.2 对不存在主机的ARP请求 42 4.5.3 ARP高速缓存超时设置 43 4.6 ARP代理 43 4.7 免费ARP 45 4.8 arp命令 45 4.9 小结 46 第5章 RARP:逆地址解析协议 47 5.1 引言 47 5.2 RARP的分组格式 47 5.3 RARP举例 47 5.4 RARP服务器的设计 48 5.4.1 作为用户进程的RARP服务器 49 5.4.2 每个网络有多个RARP服务器 49 5.5 小结 49 第6章 ICMP:Internet控制报文协议 50 6.1 引言 50 6.2 ICMP报文的类型 50 6.3 ICMP地址掩码请求与应答 52 6.4 ICMP时间戳请求与应答 53 6.4.1 举例 54 6.4.2 另一种方法 55 6.5 ICMP端口不可达差错 56 6.6 ICMP报文的4.4BSD处理 59 6.7 小结 60 第7章 Ping程序 61 7.1 引言 61 7.2 Ping程序 61 7.2.1 LAN输出 62 7.2.2 WAN输出 63 7.2.3 线路SLIP链接 64 7.2.4 拨号SLIP链路 65 7.3 IP记录路由选项 65 7.3.1 通常的例子 66 7.3.2 异常的输出 68 7.4 IP时间戳选项 69 7.5 小结 70 第8章 Traceroute程序 71 8.1 引言 71 8.2 Traceroute 程序的操作 71 8.3 局域网输出 72 8.4 广域网输出 75 8.5 IP源站选路选项 76 8.5.1 宽松的源站选路的traceroute 程序示例 78 8.5.2 严格的源站选路的traceroute 程序示例 79 8.5.3 宽松的源站选路traceroute程序 的往返路由 80 8.6 小结 81 第9章 IP选路 83 9.1 引言 83 9.2 选路的原理 84 9.2.1 简单路由表 84 9.2.2 初始化路由表 86 9.2.3 较复杂的路由表 87 9.2.4
TCP(传输控制协议)和UDP(用户数据报协议)是网络传输层常用的两种协议,它们在功能和特点上有一些区别,同时也适用于不同的应用场景。 1. 连接性:TCP是面向连接的协议,通过三次握手建立连接,确保数据可靠性和顺序性。UDP是无连接的协议,每个数据包都是独立的,不保证可靠性和顺序性。 2. 可靠性:TCP提供可靠的数据传输,通过重传机制、确认应答和错误校验等机制来保证数据的完整性和可靠性。UDP不提供可靠性保证,数据包可能丢失、重复或乱序。 3. 速度:UDP具有较低的延迟和较高的传输速度,因为它没有TCP的连接建立和断开过程以及复杂的流量控制和拥塞控制机制。TCP的可靠性机制会增加一定的延迟和开销。 4. 应用场景:TCP适用于对数据完整性要求较高的应用场景,如文件传输、网页浏览、电子邮件等。UDP适用于实时性要求较高、对数据完整性要求较低的应用场景,如音视频传输、实时游戏、DNS解析等。 关于长连接和短连接,TCP协议通常被用于长连接,而UDP协议通常用于短连接。长连接指建立一次连接后,客户端和服务器保持持续的通信,可以进行多次请求和响应。短连接指每次请求和响应都需要重新建立连接,完成后即断开连接。由于TCP提供了连接的可靠性和稳定性,适合长时间的数据传输和持续的通信,因此通常使用TCP实现长连接。而UDP更适合于短时间内快速传输的场景,如实时通信、查询响应等。 总结来说,TCP是面向连接的、可靠的传输协议,适用于对数据完整性要求较高的场景,常用于长连接;UDP是无连接的、不可靠的传输协议,适用于实时性要求较高、对数据完整性要求较低的场景,常用于短连接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值