域名的www到底要不要添加?

小郝不负流年
小郝不负流年   + 关注
2021-01-22 13:26:37   阅读509   评论0

历史背景

尽管人们总是把“域名”和“主机名”这两个词混为一谈,但这它们是有区别的,而且不只是语义上的区别。我会简单介绍一下这两个词,以示其区别:

作为一个IT管理员,你的网络系统就是你的域。你需要给这个域起名,并登记在域名系统(DNS)中,比如说,你可以起名为“example.com”。域的下面是主机,每个联网的设备都可以算作一个主机。

在你的域内,服务于万维网(WWW)文件的机器会自动获得主机名“www”,因此你的完全限定域名(FQDN,同时带有主机名和域名的名称)就是www.example.com。不管其他主机有没有网页服务器,域内其他主机的名字也会变成带“www”的,这样能够更好地管理网络系统中的主机。

要想使用“example.com”这个域内的网页服务器,你就需要使用名为www.example.com的主机。顺便说一句:在互联网早期阶段,还没有虚拟主机这回事。所有的网页服务器都要服务于同一个网站(起码是同一个IP地址)。只要主机名能指向正确的IP地址,用什么名字都没关系。

“裸域名”,也就是没有“www”的域名,比如“example.com”,在DNS协议中被称为“根域名”(theorigin)。上世纪90年代中期,万维网越来越普及,一些管理员开始把根域名指向和网页服务器主机同样的IP地址。这样,网页访客只需在浏览器中输入“example.com”就可访问,而不用输入完整的主机名“www.example.com”。

然后,搜索引擎优化来了

从根域名“example.com”和主机名“www.example.com”可以指向不同的IP地址开始,1997年1月后,二者也可以指向同一IP地址下的不同网页。对搜索引擎优化(SearchEngineOptimization,SEO)有所了解的人开始告诉我们,必须要选择一个规范的主机名,而且另一个名字也要指向这个规范的主机名,并使用HTTP301响应代码。

这也是有道理的,但是选哪一个呢?如果只考虑SEO,选哪个都没关系。但是还有很多SEO以外的问题,下面我会继续解释。

人们对URL的理解

本世纪初,我在一家营销机构工作,大家很担心如果我们在网址里省略“www”,人们可能会意识不到这是一个万维网地址。那时,在网址中省略http://也是没过多久的事。此外,由于一些遗留问题,我个人倾向于使用完整的“正确”主机名,即“www.example.com”。

现在则大不相同了。如果你有一个常见的顶级域名,那么加不加www大家都会明白的。而且,一个版本名称现在可以重新指向另一个地址。因此,如果你的规范主机名是“www.example.com”,而你在印刷广告中只使用看起来更简洁的“example.com”,这也是可行的。不过,如果你的顶级域名比较新,比如.beer,那么加上www会比较好,因为人们可能认不出这是一个网址。

不加www更好看更简洁

我得承认:“example.com”更短,读起来更容易。你试试,是不是没法一口气读完“www”吧?而且,不加www后,名称占用的空间也更小。因此,人们开始省略“www”、直接把根域名作为主机名,这也是可以理解的了。

那为什么还在纠结加不加www呢?

为什么我们还在争论这个问题?人们不能喜欢什么就用什么吗?

当然可以。

但是,假如你是网站管理员,你在决定前可能会想深思熟虑一番,因为在使用网络上的大部分东西前,比如cookie,我们都没有好好思考过。

Cookie会被发送到所有的子域

在主机名下设置的cookie也会被发送到所有的子域,也就是说,如果在“example.com”的网站设置一个cookie,浏览器在浏览“www.example.com”时也会发送这个cookie。

这听起来是件好事,因为反正它们是同一个网站,对吧?但是,这个cookie也会被发送到“cdn.example.com”、“email.example.com”、“intranet.example.com”等等任何包含“.example.com”的第三方服务网站。很多第三方服务网站都是这样共享你的cookie。

而对于在“www.example.com”下设置的cookie,是不会发送到以上这些网站的。你的浏览器能够识别出它们不是“子服务”,而是完全不同的服务,因此不会发送cookie。

不必要的cookie会影响网页运行速度

每访问一次网页服务器,浏览器都会发送一次HTTP和cookie。因此,如果你的cookie设在根域名“example.com”下,那么每当你访问“email.example.com”或者是“intranet.example.com”的时候,浏览器都会发送cookie。这会导致网页的运行速度下降,影响用户体验。

第三方可以读取cookie

所以,如果你的主机名是根域名(“example.com”),并且可以登录到内容管理系统(CMS),那在你登录期间,CMS会给你的浏览器发送一个cookie。接着,如果你访问“someinternalservice.example.com”(内部服务),该网站的管理员就可以访问并利用这个cookie,以你的名义登进CMS里的“example.com”。

类似的,你访问“email.example.com”(邮箱)的时候,你的CDN服务商也可以登进你的邮件服务,加载出大量含有“example.com”的网站,比如“static.example.com”等等。

如果你担心网站上内容的安全,那就应该使用有www前缀的主机名。如果这都不能让你决定到底要不要前缀,那我就无话可说了。HTTPS和双因素认证(Two-factorauthentication,2FA)都不能确保你网站的安全,尽管2FA通常很有用,不过IP限制这样的安全措施能起到一定帮助。

子域的cookie可以在全域分享

如果你在例如“sso.example.com”这样的子域上有一项服务,RFC6265使你能够在子域上设置一个cookie,并和“example.com”或“www.example.com”共享。因此,使用有前缀的主机名能使操作更加灵活。

DNS根域名不能是CNAME(规范名字)

说到灵活性,我们又要谈回DNS了。

DNS中有一项限制,即根域名的记录类型必须为A,意思是它必须指向一个固定的IP地址。

当你的站点越来越庞大,你可能会将其转向托管服务,或者希望将其指向Web应用防火墙或者DDoS缓解服务。这时,可以使用CNAME记录,把你的主机名指向另一个灵活的主机名。这个新的主机名由托管商根据你的流量和需求来选择和管理。

如果你的主机名在根域名(“example.com”)下,你就没办法使用CNAME。但是,有前缀的主机名就不会遇到这个问题。因此,如果你想有更多选择的机会,那一开始就应该使用有www的主机名。

结论:还是加上www吧

用不用www是有区别的。没有www,根域名的确看起来更简洁,但这只是让浏览器搜索栏更简洁罢了。你完全可以用“www.example.com”作为主机名,同时在其他地方使用不带www的名称,因为即使用户输入不带www的名称,浏览器也会自动跳转到正确的页面。

使用带www的全称作为主机名的好处多多:网页运行优化、安全可靠,而且十分灵活。

这回应该能终结这场争论了:加上www吧!

作者:久谦咨询(头条)

对我有用,我要     转载  
文章分类: 运维/统计/技术支持  
所属标签: 域名  
  • 0条评论
  • 只看作者
  • 按时间|按热度
  • 由于本人多次涉及需要打印这个证明,而每次都会忘记入口,在网上各种搜索各种摸索很是浪费时间。故本次将操作流程整理记录下来,以备忘。同时也分享给大家。1、打开湖北政务服务网,地址:http://zwfw.hubei.gov.cn/s/index.html2、切换区域到“武汉市”3、在“特色服务”模块找到“(个人)武汉市社会保险公共服务平台”4、进入“(个人)武汉市社会保险公共服务平台”,登录账号密码<imgsrc="https://cdnstatic.hoscen.cn/blog/article/184053017752895488/img/497065960be44747825acb86a17483c1.png"style=
  • 本文讲触发el-dialog前动态修改窗口title的方法。1、el-dialog添加title属性el-dialog :title="titleType+'菜单'" :visible.sync="dialogVisible" width="800px" >el-dialog>  2、初始化变量(titleType,名称自己定义)export&
  • 如何使用postman模拟http发送xml参数报文的POST请求?1、postman工具通过安装软件或使用谷歌插件都可以,这里不再赘述。2、配置postman,选择POST,填写URL;切换到Headers,添加Content-Type:text/xml 3、切换到body,选择raw,XML,下方填写你的请求报文4、点击Send发送请求,如图可以看到响应状态、时间、结果等信息5、讲到这里就结束了,是不是学会了?快去试试吧!
  • 一般我们在使用CDN时都设置有缓存时间,当源站资源发生变更后,如果缓存时间没到,那么用户访问的依旧是变更前的数据,虽说又拍云控制台提供了缓存刷新功能界面,但是每次都手动去刷新显示不太理想,当然又拍云也想到了这一点,提供给我们有API可以调用。本篇文章就是讲解如何接入又拍云缓存刷新API。网站免费接入又拍云CDN的方法,请查看我另外一篇文章,地址: https://www.hoscen.cn/blog/hao/articles/204022774975430656.html又拍云API文档:https://api.upyun.com/doc#/api/guide/overview看完文档,我们会知道又拍云提供有两个缓存刷新接口,一个支持通配符(但次数有限),一个是完整url刷新。同时注意调用接口时将 Token 放入 HTTP Header 中 。那么我们需要3个接口:1、获取token2、URL刷新3、缓存批量刷新详细请求参数和响应值请查看文档。话不多说,我们直接放上核心代码1、获取token2、URL刷新<img src="https://cdnstatic.hoscen.cn/blog/article/
  • 很多时候我们需要Linux服务器定时去运行一个脚本来触发一个操作,比如写缓存数据到硬盘、定时备份、定时重启服务、定期清除日志等。下面就简单讲解一下Linuxcrontab命令如何实现自动循环执行shell脚本。一、准备shell脚本比如我们准备一个hello.shvim/hcn/sh/hello.sh#!/bin/bash  DATETIME=$(date"+%Y%m%d%H%M%S") echo"hello, www.hoscen.cn,时间:${DATETIME}"  通过chmod命令赋予该脚本的执行权限chmod755hello.sh测试正确性二、开启crontab服务 linux应该都有crontab,没有的话可以安装一下:yuminstall vixie-cronyuminstall crontabsvixie-cron软
  • 本文主要讲canonical标签的使用、canonical标签的作用、canonical标签SEO,在实践中如何正确规范的使用canonical标签。Canonical标签实际上就是一个页面内的301转向,可以帮助我们解决内容一样url不一样的网址规范化问题。和301跳转不同的是,用户并不被转向,但是对于搜索引擎来说,页面链接的权重是会被集中到代码中指明的规范化url上的。 图片来源:一灯出海对于经验丰富的SEO人员来说,canonical标签的使用一定不陌生,但最近在实践中发现不少网站的页面虽然用了canonical标签,但是使用方法却不规范。所以在这里和大家一起探讨一下canonical标签的规范使用方法,让更多的SEO人员避免走弯路。如果一个页面有多个url:https://www.hoscen.cn/blog/hao/articles/211896161185824768.htmlhttps://www.hoscen.cn/blog/hao/articles/211896161185824768/view这些url的页面内容完全一样,而我们想优化的规范化url为<ahref="https://www.hoscen.cn/blog/ha
  • 生活中难免有觉得“好累啊”的时候,岁月在不同阶段将不同压力倾轧到不同人身上,那些时刻降临时,多半只能靠自己挺过去,“人应该有力量,揪着自己的头发把自己从泥地里拔起来。”  10种疲累,10个“解药”。给累了的你。《如果,你觉得很累很累……》No.1明明休了周末,周一上班还是觉得:好累啊……一剂解药:所谓的休息并不单纯只有躺下,而是做自己想做的事,不做自己不想做的事情。休息有“储存的休息”和“释放的休息”两种。“储存的休息”通过休息来储存体力和活力。“释放的休息”则通过做喜欢的事情来释放平日累积的郁闷和压力。“储存的休息”不足时身体会坏掉,“释放的休息”不足时精神会崩坏。开药者丨@bibibi_senseiNo.2总是活在别人的眼光里,总是被他人的评价所左右,好累啊……一剂解药:纵使被说坏话
  • 1. 两数之和

    阅读数539
    总结:1、解决方法通常我们最容易想到的是暴力枚举(双重for循环),时间复杂度O(N^2),空间复杂度O(1),其中N是数组中的元素数量 2、利用哈希表可以以空间换时间,时间复杂度O(N),空间复杂度O(N),其中N是数组中的元素数量 题目给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定nums=[2,7,11,15],target=9因为nums[0]+nums[1]=2+7=9所以返回[0,1]答案第一版:暴力枚举,时间复杂度高public int[] twoSum(int[]nums, int target){   int len=nums.length;   
  • 数据结构绪论

    阅读数538
    1、数据结构起源早期计算机被理解为数值计算工具,但是我们还有一些非数值的计算,因此需要一些更科学有效的手段(比如表、树、图等数据结构)的帮助来处理问题。所以数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的关系和操作等相关问题的学科。2、基本概念和术语2.1 数据数据:是描述客观事物的符号,是计算机中可以操作的对象,是能够被计算机识别,并能输入给计算机处理的符号集合。数据不仅包括整型、实型等数值类型,还包括字符、声音、图像、视频等非数值类型。我们所说的数据,其实就是符号,但是这个符号需要满足两点:能输入到计算中能被计算机程序处理2.2 数据元素数据元素,也被称为记录。是组成数据的、具有一定意义的基本单位。比如,在人类中,人就是数据元素。在禽类中,猪狗牛羊等动物就是禽类的数据元素。2.3 数据项数据项:一个数据元素可以由若干个数据项组成。比如 人这个数据元素,就可以有眼、耳、鼻等数据项,也可以有姓名、年龄等数据项。具体有哪些数据项是视你所做的系统来决定。数据项是数据不可分割的最小单位。但注意真正讨论问题时,数据元素才是数据结构中建立数据模型的着眼点。就像我们讨论一个电影,通常是讨论角色这个“数据元素”,而不是讨论角色的姓名、年龄这些“数据项”。2.4 数据对象数据对象:是性
  • 什么是内卷?

    阅读数538
    最近一个词频频引起热议:内卷可能很多人看到都是一脸懵或者一脸冷漠:这啥玩意,跟我有什么关系?实际上,内卷与你的生活、工作、甚至未来都息息相关百度百科上的解释是:指一种社会某一发展阶段达到某种确定的形式之后,这种形式便停滞不前,难以转化为另一种高级模式的现象,从而把自我锁死在低水平状态上,周而复始地循环。这⼀概念最早是⽤来研究⽖哇的⽔稻农业。在殖⺠地时代和后殖⺠地时代的⽖哇,农⺠在⼈⼝压⼒下不断增加⽔稻种植过程中的劳动投⼊,以获得较⾼的产量。但实际上,当地农业⽣产⻓期原地不动,只是不断地重复简单再⽣产,不能提⾼单位⼈均产值。根据简单的经济学常识就知道,劳动的超密集投⼊,不会带来产出的成⽐例增⻓,⽽会导致单位劳动边际报酬递减。举一个咱们有代入感的例子在一家公司,所有员工都按时上下班,完成8小时的工作量。但突然有一个新员工A来了,他任劳任怨、自愿加班完成10小时的工作量,他的努力也获得了领导的欣赏与嘉奖。其他