建站笔记-新版网站
本文最后更新于870 天前,其中的信息可能已经过时,如有错误请发送邮件到blue16@email.swu.edu.cn

事情起因

这篇文章应该在9月11日完成的(9月10日虽然去玩了,但是还是写了点东西的哈),但是时间问题,直接拖到了9月19日,下次我控制好时间。

在中学时段,由于兴趣爱好和便于技术测试,我尝试性地开设了我的个人主页(blue16.cn)。在高考完后,我有了相对较多的时间,借此机会,我将个人主页进行了彻底的优化与调整。

优化基本完成了,特此写一篇文章,记录一些要点和心得体会。

教程太详细,会让人无法操作,教程太简略,会让人无从下手。因此,本篇文章不是详细的教程,而是原理和要点的记录。这篇文章不会涉及许多难懂的东西,我尽量以通俗的语言,讲明建立网站的基本操作要点,让新站避坑。

闲言少叙,书归正传。建立一个站点,总的来说分为这几步:

选择服务器,注册域名,进行备案,安装网站程序。

本人第一次接触这些内容,如果下文有错误,欢迎批评(严厉点没问题的),大家一起进步!

服务器简介

什么是服务器

服务器,顾名思义,是提供服务的机器,想要给指定用户访问网站,服务器并不可少。当然,在我们的印象中,服务器是一些性能强大的计算机群,价格动辄几十万,我们个人怎么可能部署?其实,服务器不一定要这么重量级,一台单片机,一个手机(Linux),一台个人电脑(Linux/Windows)其实对于建立小型网站已经足够使用了,那些强大的服务器是应对每秒数亿次请求而设计的。

建立服务器

那我们能不能直接把我们的电脑作为服务器呢?

根据原理,事实上完全是可以的,但是,家用宽带的入网方式,限制了这种用途。

先回到生活中的场景:如果家里只有一台上网设备,我们只需要将宽带的网线插到对应设备即可上网,这时候增加几个上网设备,我们还需要去多申请几条宽带线路吗?显然不是的。实现的方式基本上都知道,我们是通过路由器的方式,让多个设备共用一条宽带。

当前我们主流的传输协议是IPV4,IP地址数量紧缺,因此不可能每一个人用一个独立的IP地址,早在多年前,就有媒体声称IP地址即将用尽,新设备无法上网。理论上是没问题的,但为什么每年入网设备增加,而IP没有短缺呢?回想一下之前的场景我们可以清楚的明白:家用宽带是共享公网IP的。所以对于家用宽带,都是通过路由的方式层层接入,共用一个IP地址,这就造成了一个问题:外层用户仅通过IP访问,想要层层进入并找到指定计算机,基本上不可能。因此,接下来的方式,才能够顺利建站。

可行方案

  • 动态域名解析

有些运营商,可以自己申请动态公网IP(看运气,一般电信可以,移动不行),拿到公网IP后,可以设置DDNS(动态域名解析:让软件在公网IP变动时候自动更新域名的解析,比较有名的就是花生壳),当然,这个方案动则数百,并不廉价。

  • 端口映射

如果很不幸,你用的是移动等类似宽带,无法申请公网IP,那就要进行端口映射,这个原理就是让一个具有公网IP的中转服务器,转发数据包实现访问,但是,这个既贵还慢(哈哈)。

  • 使用云服务器

目前,有许多云服务器提供商(比如腾讯云、阿里云),用户可以按需购买特定规格的云服务器,实现其他用户的访问。

这种方式维护简单,费用经济,同时有可以直接访问的公网IP,首选第三种。

云服务器也有许多种,但主要分类就是这样的:

独立服务器(就是一台整的物理服务器,年费上万),VPS(虚拟专用主机,年费500-几千多),虚拟主机(十几个站点共享一个VPS,100多一年)

一般一线的服务提供商(腾讯云、阿里云)只有前两个,而二级服务提供商则有第三个(不是非正规,是与一线企业合作,规模较小的服务提供商,一般其产品中有“某某融合云”),网上仔细找找,应该找得到第三个,我们用来申请,已经足够使用了。

由于新站点都没有多少预算,那就默认大家用第三种性价比极高的方案了。

域名

简介

访问一个服务器只能使用IP地址,由于IP地址难以记忆,于是域名就出现了。当用户访问某一个域名时,会首先让DNS查询IP地址后再进行访问。DNS的功能类似于电话本。

域名构成

我们以百度的网址举例:

www.baidu.com

其中com/cn/net等后缀为顶级域名,baidu则为二级域名,www为第三级域名

我们看看百度系的其他网址:

fanyi.baidu.com、baike.baidu.com

这里除了三级域名变为了fanyi/baike,其他都没变化。

根据我们上网的经验,这三个域名可以访问不同的服务,也就表示它们指向不同的服务器,由此可以衍生出无数的域名。

我们在服务商购买的域名,都是顶级域名(这里指一级域名+顶级域名),所以可以通过这种方式解析多个服务器,至于那个www,只是惯用域名,从原理上看,你完全可以将baidu.com和www.baidu.com解析到两个服务器上,只不过为了方便搜索引擎收录,我们会对域名进行301重定向,让www.baidu.com与baidu.com指向其中一个网址(百度选择的是www.baidu.com),防止搜索引擎重复收录的情况(这个是SEO优化的内容,具体不多提)

域名注册

域名注册,十分简单,网上找到一家代理商,搜索你想要的域名即可,这个费用也不贵,一年20-40元(由于不知哪个神仙,已经把blue16.com注册了,我就只能注册blue16.cn了)

如果你注册过域名,或许会有这样一个疑问:为什么不同的域名提供商都能够提供相同的域名?

其实,各种域名实际上并不是像商品一样先存在后购买,而是你付费之后由服务商/代理商向ICANN去创建你的域名。有点类似于点外卖,在不同平台能点相同一家店的外卖,只是价格会有差异。

域名解析

域名解析也就是告诉DNS,当用户访问这个域名的时候,告诉用户目标IP/地址是什么。

域名解析有多种类型,名词叫“记录类型”,这个有许多选项,我就挑选其中常用的说明一下,其他有兴趣可以看参考文档。

  1. CNAME记录

让记录中的域名提供IP地址,如果你是用的第三种方法注册的虚拟主机,那一般主机提供商会让你使用CNAME解析

  • A记录

解析至对应IPV4地址

  • AAAA记录

解析至对应IPV6地址(不怎么常用,与A对比着看)

  • MX记录

域名作为邮箱时的解析,比如我的校园邮箱:blue16@email.swu.edu.cn

这里email.swu.edu.cn就是添加的MX记录。

下面以CNAME记录为例,介绍主机记录是什么意思:

以我的域名:blue16.cn为例:

可以看出:www解析就是到www.blue16.cn,为了简短,我让服务器通过301定向到了blue16.cn,@则代表解析到blue16.cn,按照这个操作,其实我还可以用mail.blue16.cn,disk.blue16.cn等域名实现不同的网页功能。

这里提示一下,一般域名注册,相关服务提供商会进行实名认证,因此域名可以在购买服务器之前注册,以免耽误时间。

HTTP和HTTPS

早期的http协议,数据传输为明文传输,黑客可以中途劫持,造成不良后果。而https协议,则是使用了SSL加密的http协议。

详细原理我就不介绍了,感兴趣的移步参考资料。

首先了解一下加密原理,公钥和私钥。

公钥和私钥,顾名思义,公共的密钥和私密的密钥。公钥用于加密数据,解密数据必须用私钥。当建立https连接时(特别注明:这里做了简化。实际上是非对称加密算法和对称加密算法的集合),服务器会返回公钥(数字证书),然后客户端用公钥进行加密并返回数据,服务器通过私钥解密。

那这个证书在哪里来呢?证书由权威机构颁发,有的免费,有的收费。你申请完域名时,直接可以申请免费证书(时长只有一年,因此注意每一年进行更换)。

这里刹一脚,说到加密算法,我就能想到23届的四省联考中导数压轴题命题背景-椭圆曲线加密算法(ECC)当然那道题的第二小问的考点是定义新运算。

其实加密的原理,从本质上说,就是实现一种不可逆的算法。

这东西还涉及数字签名的原理,有点小复杂,我也只知道一点,点到为止,感兴趣的移步参考资料。

网站的基本构成

静态网站

我们在访问一个网站时,浏览器首先发送一个请求到目标地址,然后浏览器会收到一个文件——index.html(也有index.htm,htm文件是为了兼容过去的DOS命名格式存在的,在效果上与html没有区别),这个文件里面写的内容,可以被浏览器识别并按照图形的方式呈现给用户。

这种方法,服务器只需要根据请求,从磁盘中读取相应文件,然后发送到目标IP即可。这种无论用户是谁,怎样访问,页面内容都不会变化的网页,我们称作静态网页。

动态网站

如果想让网站实现更高级的功能,比如评论、修改、与用户互动,那就需要修改网页的内容,让网页内容随着用户的操作而自动发生变化,这种我们就称为动态网页。

当用户访问动态网页时,服务器同样会读取文件,但这并不是读取HTML文件,而是执行网站应用(index.php)(PHP是一种网页编程语言),服务器通过解码程序,执行相应操作(比如检索数据库),然后动态生成一个HTML文件,再返回给用户。

显然,要想实现更多功能,我们建站,以建立动态网站为主。

数据库

数据库,顾名思义就是存放数据的地方。我们常见的数据库提供商有Oracle、MySQL,其中个人建站主要用的是MySQL的社区版,因为这个是免费的。我们所有网站的数据记录,都将保存在数据库中,并让网站应用进行访问。

数据库管理软件,就是以直观的方式来管理数据库结构以及数据。这里我们基本上用的是PHPMyAdmin。

当然,如果程序需要对数据库操作,一般用的语句是SQL语句。

SQL,结构化查询语言,也就是对数据库进行增删改查的操作语句。所有数据库基本上都可以用SQL,但是部分数据库可能会有少许语法上的不同(就像普通话和方言的区别)

网站备案

先说说网站备案是什么,简单来说就是让网站的基本情况在国内相关部门进行登记审查,接受监管,相关部门一般指工信部和公安部门。当然这可是中国特色项目,如果你的服务器是海外的不用管。(之前由于时间问题,我就用的是海外服务器,也就是我们说的“免备案”服务器,当然,由于在海外,速度快不起来)

网站备案分为两个大板块:ICP备案和公安备案。

ICP是否备案直接决定网站是否能够被访问,在ICP备案完成后,就可以进行公安备案。

ICP备案是在服务器提供商处备案,需要有域名,由于备案时间较久,这一步建议在域名和主机同时开通后马上申请,然后再建设网站,以免耽误时间(我大概用了一周)。在拿到备案号后,需要在你的网页页脚写上备案号并链接到工信部官网。

一般ICP备案完成后,系统会在一到两天自动解封你的站点,等ICP备案完成后就是公安备案,这一步要注意的就是,本人可能需要到现场(户籍所在地),如果像我目前一样,在大学里面,那就不太好办。当然,我去说明情况后,公安部门直接打了个微信电话过来,询问了网站基本信息后就给我通过了。

通过后基本上就能拿到公安备案号,你需要将公安备案号同样加在页脚即可。

这个公安备案虽然不影响网页访问,但是如果长期不备案,有被查封的风险,查封就直接进黑名单,需要单独联系服务器提供商解封。

参考资料

下面是所有我参考过的资料,希望读者能根据引用,反馈错误,不胜感激!

域名结构:https://baike.baidu.com/item/%E5%9F%9F%E5%90%8D%E7%BB%93%E6%9E%84/6176465?fr=aladdin

CNAME解析详解:

https://cloud.tencent.com/document/product/302/3450

静态页面和动态页面:

https://zhuanlan.zhihu.com/p/637599555

伪静态:

https://baike.baidu.com/item/%E4%BC%AA%E9%9D%99%E6%80%81/2234695

域名购买问题:

https://www.zhihu.com/question/284077374/answer/435622456?utm_id=0

域名解析:

https://baike.baidu.com/item/%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90/574285?fr=ge_ala

解析记录类型:

https://blog.csdn.net/qq_41272376/article/details/123002347

https详解:

https://blog.csdn.net/w47_csdn/article/details/87381814

ECC算法:

https://zhuanlan.zhihu.com/p/101907402?utm_id=0

评论

  1. jivhu
    Android Chrome
    2 年前
    2023-9-19 23:46:49

    🌟🌟🌟🌟🌟

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇