欢迎光临
我们一直在努力

URL、HTTP与HTTPS:一文搞懂Web通信底层逻辑

早上刷到一条消息报错提示里写着 dps://p?url=https%3a%2f%2fpages-fast.m.taobao.com ,估计很多朋友第一反应都是“这是什么鬼”?还有那些一长串的 % 和数字。其实这就是 URL 编码后的样子,而 URL 只是 Web 通信里的最表层。真正撑起整个互联网的是 HTTP 和 HTTPS 这两个协议。我见过不少做了几年开发的人,天天和接口打交道,但问他\”URL 里的 %3a 和 %2f 到底怎么来的\”,照样答得模棱两可。这篇内容就是为完全零基础的朋友准备的,我会把 URL、HTTP、HTTPS 这三件事从头到尾拆开揉碎,用最直白的大白话讲清楚 Web 通信的底层逻辑,并且穿插一些实际调试中会遇到的细节,比如 HTTP 连接复用、502 状态码的含义,让你看完之后不光能看懂地址栏,还能在遇到问题的时候知道从哪里下手排查。

1. URL 到底是什么它绝不是\”网址\”两个字能概括的

很多人把 URL 直接叫\”网址\”,这没错,但不够准确。URL 的全称是 Uniform Resource Locator,统一资源定位符,它要解决的核心问题是:在茫茫互联网中,精准定位到某一个资源。这个资源可以是一个网页、一张图片、一个视频,甚至一个接口。你输入的每个字符都有它存在的理由,不能乱写,也不能省略。

1.1 URL 的基本组成:协议、域名、路径和查询参数

我随手写一个 URL 来拆解:

https://www.example.com:443/path/page.html?name=zhangsan&age=18#section1

这段地址可以分成五个部分,每一块都有自己的职责。

  • 协议(scheme) : https ,告诉浏览器你准备用什么规则去访问这个资源。可以是 http 、 https ,也可以是 ftp 、 file 之类的。协议不同,通信方式就完全不同,这是 URL 里最重要的开头。
  • 域名(host) : www.example.com ,用来识别网络中的哪台服务器。域名本质上是一串让人好记的代号,背后对应一个或者多个 IP 地址。你访问一个域名时,浏览器首先会通过 DNS 解析找到对应的服务器 IP。
  • 端口(port) : :443 ,用来指定服务器上具体哪个进程在监听这个请求。HTTP 默认端口是 80,HTTPS 默认端口是 443。如果服务器上开了一个非默认端口的服务,就必须在 URL 里显式写出来,比如 http://192.168.1.100:8080 。
  • 路径(path) : /path/page.html ,告诉服务器要访问的具体页面或资源位置,类似于你在一台电脑里找到某个文件的文件夹路径。
  • 查询参数(query) : ?name=zhangsan&age=18 ,这是给服务器传参数的一种方式。以 ? 开头,多个参数之间用 & 分隔,每个参数是 key=value 的形式。它决定了服务器返回的内容具体是哪一种。
  • 锚点(fragment) : #section1 ,它不会发给服务器,是浏览器内部的定位标记,比如滚动到页面某个位置。

很多人会混淆查询参数和路径,我举个例子说明:路径 /news 表示资源模块是新闻,而查询参数 ?id=123 表示这个新闻的具体编号。 /news?id=123 表达的是\”新闻这个分类下的第 123 条内容\”,如果写成

赞(0)
未经允许不得转载:171主机测评 » URL、HTTP与HTTPS:一文搞懂Web通信底层逻辑
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址