14、【Ubuntu】【VSCode】VSCode 断联问题分析:hostname(二)

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

背景

上篇 blog
【Ubuntu】【VSCode】VSCode 断联问题分析:hostname(一)

介绍了下 hostname 命令以及主机名,域名,以及全限定域名 FDQN 的概念与区别,下面继续来看下

VSCode 断联问题

上篇 blog 【Ubuntu】【VSCode】VSCode 断联问题分析:hostname(一) 提到了对于域名 csdn.net 和全限定域名 www.csdn.net,网站更常用的是HTTP 重定向 (301) ,当访问 csdn.net 时,Web 服务器收到请求,返回一个 HTTP 301 状态码,告诉浏览器用 www.csdn.net 访问,此时浏览器会自动跳转到 www.csdn.net,比如在终端输入

bash 复制代码
curl -I csdn.net

可以看到响应如下,回复 HTTP 301,并且告知了 csdn.net 域名的位置在 www.csdn.net,说明 csdn.net 被重定向到了 www.csdn.net

可以看到,其实不管用域名 xxx.com 还是全限定域名 FQDN www.xxx.com,一般都能访问到网站内容,从技术上没有强制要求, 因为通过 DNS 配置 和 HTTP 重定向,xxx.comwww.xxx.com 都能指向同一个地方

对于 www 而言,其本质上是一个主机名,表示 Web 服务的入口www 从技术上来说不重要,但习惯上仍然广泛使用,属于一个历史遗留的仪式感,就像外卖快递上的收件人 ,虽然不加也能寄到,只要有地址 (域名)即可,但加上更规范,可以清晰地标识该处是 Web 服务

另外,还要注意一点,在互联网上,用户看到其主机名是 www,不代表其内部的机器也叫 www,实际上,www 是给用户看的主机名,而在服务器内部,看到的则可能是 web01web02 这样的主机名代号,也就是说,主机名在不同层级下有不同的视角:

  • 用户视角:看到 www.mycompany.com 这样的全限定域名 FQDN,这是一个面向公众的 DNS 记录,www 作为服务别名,提示用户该地址提供网页服务 ,但这里不是一个真实的服务器名字,而是一个负载均衡器CDN 节点(Content Delivery Network,内容分发网络)的地址
  • 内部视角:看到 web01web02db03 这样的代号,真实的物理服务器或虚拟机可以被命名为类似 web01.mycompany.com 内部运维使用的主机名,像这样的名字不会暴露给互联网用户

其连接过程大致如下

在这个过程中,用户只知道 www.xxx.com,而负载均衡器知道后端有 web01web02web03 等服务器,而 web01web02web03 就是这些后端服务器的主机名,但它们并不知道自己对外叫 www.xxx.com

关于前面介绍的 HTTP 301 重定向,涉及到 HTTP 状态码,这些状态码是由互联网工程任务组(IETF,The Internet Engineering Task Force)在一系列的 RFC(Request for Comments)文档中定义的,这些文档是互联网标准和技术规范的基础

在规范文档 Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
RFC 7231
中,可以找到 HTTP 301 状态码如下

可以看到 301 Moved Permanently 表示请求的资源已经被永久地移动到了新的链接 URI,客户端用户应该使用新的 URI 进行后续请求,浏览器拿到这个指示后,就会跳转到新的链接

然后这里再最后说下前面使用的 curl -I 命令,在终端输入

bash 复制代码
man curl

查看 curl 命令如下

可以看到 curl 命令的功能:transfer a URL,表示通过 URL 从服务器获取数据,或者向服务器发送数据,curl 命令可以处理多种网络协议,比如 HTTP/HTTPS(访问网页),FTP/FTPS(文件传输),SCP/SFTP(SSH 传输),SMTP/SMTPS(发送邮件),FILE(访问本地文件)等等,几乎能处理所有网络传输需求

查找 -I 选项如下

可以看到 -I 选项可以请求并显示服务器返回的 HTTP 头部信息

ok,先到这里,下篇 blog 继续

相关推荐
阿华hhh1 天前
项目(购物商城)
linux·服务器·c语言·c++
摸鱼仙人~1 天前
大模型文章生成的风格个性化与多文体写作:一套可落地的方法论
linux·运维·服务器
煤球王子1 天前
浅学文件系统4(页面缓存)
linux
peixiuhui1 天前
Iotgateway技术手册-1. 项目概述
linux·网关·iot·modbus·数据采集网关·iotgateway·采集软件
wdfk_prog1 天前
[Linux]学习笔记系列 -- [fs]sysfs
linux·笔记·学习
AllFiles1 天前
Linux 网络故障排查:如何诊断与解决 ARP 缓存溢出问题
linux·后端
pps-key1 天前
Afrog漏洞扫描器:从入门到入狱......边缘的摇摆记录(pps-key黑化版)
linux·计算机网络·安全·网络安全
学Linux的语莫1 天前
linux的root目录缓存清理
linux·运维·服务器
oMcLin1 天前
如何在 SUSE Linux Enterprise Server 15 上部署并优化 K3s 集群,提升轻量级容器化应用的资源利用率?
linux·运维·服务器
L_09071 天前
【Linux】进程概念
linux