摘要:URL (Uniform Resource Locator, 统一资源定位符)是互联网上用于标识某一资源(如网页、文件、图片等)位置的字符串,通过它能让浏览器等工具准确找到并访问对应的资源。
点个链接,背后到底发生了啥?这篇文章用PM能听懂的语言,讲透URL、DNS、TCP那些技术细节,让你和开发沟通不再“鸡同鸭讲”。
URL (Uniform Resource Locator, 统一资源定位符)是互联网上用于标识某一资源(如网页、文件、图片等)位置的字符串,通过它能让浏览器等工具准确找到并访问对应的资源。
结构解析类比一下
咱们用「快递单」类比URL是非常直观的方式,因为两者的核心都是“明确告诉执行者(快递员/浏览器):要把东西(包裹/网页数据)送到哪里、用什么方式送、要找哪个具体物品。
DNS是个啥?
DNS(Domain Name System,域名系统),它是互联网的「地址簿」,将人类易记的域名(如:www.baidu.com)翻译成计算机能识别的IP地址(如:180.101.50.242),让设备能准确找到目标服务器并建立连接。
在互联网中,所有设备(电脑、手机、服务器)的通信都依赖IP 地址(类似现实中的门牌号)。但IP地址是一串无规律的数字(如IPv4的192.168.1.1或IPv6的2001:0db8:85a3:0000:0000:8a2e:0370:7334),人类很难记忆和输入。
什么是TCP链接?
TCP(Transmission Control Protocol,传输控制协议)是互联网中确保数据可靠传输的「通信规则集」,而TCP连接则是基于这套规则建立的、两台设备(如手机与服务器)之间的专属通信链路。这里顺便提下她的几个核心特性:
面向连接:数据传输前必须先建立连接,传输后必须断开连接,这类似打电话先拨号通了再说话,挂了再结束;可靠传输:这主要通过确认和重传机制实现:发送方每发一段数据(报文段),接收方必须回复“ACK确认”;若发送方超时没收到ACK,会自动重发这段数据,避免丢失。有序传输:TCP会给每个报文段分配一个唯一的序列号,接收方会按序列号重新排序数据(比如网络延迟导致数据“先发后到”时,接收方能纠正顺序),最终输出完整有序的内容;流量控制:接收方会告诉发送方“我当前的缓冲区还能装多少数据”,避免发送方发得太快,导致接收方缓存溢出、数据丢失。这类似“你别说话太快,我记不过来”;拥塞控制:TCP会根据网络拥堵情况动态调整发送速率(比如发现丢包时,认为网络拥堵,主动放慢发送速度),避免单个连接霸占带宽导致全网卡顿们,这类似当路上堵车的时候,大家都慢点开。咱们日常用的微信消息、网页加载、视频通话(非实时低延迟场景)都是基于TCP连接,因为我们需要消息必须送到、网页不能缺内容。
上了年纪的人应该都知道「杯线电话」吧(坏笑),用这个场景可以简单且直观的认知专属通信链路的TCP连接
为避免歧义,咱特意说明下:杯绳电话在这里仅作为一种简单的比喻,帮助初学者快速理解TCP连接建立和一对一通信的基本概念,但还不能全面反映TCP连接复杂、可靠、高效等特性哦~
最后再补充点小知识:对应的还有UDP协议,这玩意儿没有TCP可靠,仅应用在允许一定延迟的场景(比如:游戏,痛过的朋友知道背后的始作俑者了吧!),具体就不展开了,非本文的重点,对技术感兴趣的你请自行扩展阅读。
说到这里,我就忍不住给你讲这个小红书上的技术梗了:TCP挎包-保证不丢包!UDP嘛-丢包率有点高……笑出猪叫声有木有?
本文由 @肖沐 原创发布于人人都是产品经理。未经作者许可,禁止转载
题图来自Unsplash,基于CC0协议
来源:人人都是产品经理