建站须知一二三

最后更新时间: 2018-09-21 | 作者: AberSheeran | 捐助

首先,我们要明确,网站的访问是使用HTTP协议(超文本传输协议)进行传输数据到浏览器,然后由浏览器进行解析、运行,才得以是你看到的样子。至于https,也只是基于HTTP协议的一种加密协议,在此不是重点,暂且不提。

在这一点来看,一个网站和QQ用起来没有本质的区别。都是与远程的服务器交换数据,然后由本地的程序进行解析、运行之后展现在用户面前。


那么我们访问一个网站,例如 https://baidu.com,到底发生了什么呢?

当我们访问百度的时候,首先 我们的设备通过网络,向DNS服务器发送了一个请求,询问 baidu.com 的IP地址是什么。然后浏览器通过这个IP地址和HTTP对应的默认端口80,和百度的服务器取得了联系。当与baidu的主机连上之后,浏览器将uri传递过去,告诉它的主机我,百度用户,给资源。百度的主机经过一系列的检查身份,检查请求,检查资源之后,给了你对应的数据,由浏览器解析运行之后,展现在了你的面前。

什么是服务器?

为了与服务器程序区分,服务器有时候被叫做主机。服务器就是一台24小时不停机的计算机,你的电脑,手机都可以充当服务器(普通电脑的硬件可能不支持24小时运行,不然会坏)。

什么是DNS服务器?

提供DNS查询服务的就是DNS服务器。著名的DNS服务器有 8.8.8.8 和 1.1.1.1(有些不合格的网络管理员会通过干扰网关而把它所管理的局域网内的1.1.1.1定向到特定的服务器,譬如我校无线校园网的登陆验证)

什么是DNS服务?

一种将请求方询问的域名转换为IP地址并回馈的服务

什么是域名?

badiu.com就是一个域名。域名不能带协议头和统一资源标识符(uri)。域名分等级,顶级域名就是类似于 .com,.cn一类的,一级域名就是例如 baidu.com,二级域名例如 ziyuan.baidu.com,以此类推三级,四级域名等等。

一般来说,购买的都是一级域名。当我们购买了一个域名之后,我们应当拥有它以及它下面所有更低级域名的使用权。
例如我购买了yiban.app这个一级域名之后,我可以将ahnu.yiban.app这个二级域名解析到我们学校易班使用的服务器上,也可以将yiban.app解析到我们的服务器上。

什么是IP?

IP分公网IP和私有IP,公网IP是你的计算机在互联网中的唯一身份标识,私有IP则是你的计算机在局域网中的唯一身份标识。
任何局域网,都需要有至少一个公网IP才能访问互联网中的其他电脑,原因在此不解释,但可以知道的是,局域网内的用户是公用一个公网IP上网的,为了标识不同的身份,会临时约定某个端口绑定到局域网内某台计算机的某个端口。同样的,任何一台主机,都需要至少一个公网IP才能被人访问到。
一般来说,普通用户没有专属的公网IP。意味着,你的机子没法直接让互联网中的用户访问到,只能让与自己处于同一局域网下的设备访问。

什么是端口?

为了某些目的,现代计算机一般有65536个端口,也就是0 ~ 65535。程序可以绑定在某个或者某些端口上进行运作。每个HTTP网络请求都需要本机的IP和一个端口与目标的IP与端口来建立。
每个协议都有自己的默认对应的端口,例如HTTP是80,HTTPS是443。你当然可以通过http://your.domain:8080来使用HTTP协议访问你的网站,不过这种访问显然对用户没那么友好——他们需要多记住一个端口号。

为什么要用域名解析到IP?

就像人类记住某个建筑的位置一样,一般来说某某地区某某街道的某某号比起经纬度更容易让人记住。你当然可以使用IP访问对应的主机,但一般人怎么会记得住IP。

什么是uri?

它的英文是: Uniform Resource Identifier,或URI。是一个用于标识某一互联网资源名称的字符串。
例如 https://abersheeran.com/article/建站须知一二三/ 中域名后面的玩意:/article/建站须知一二三/
要注意 https://baidu.com或者https://baidu.com/对应的uri都是/,别问我为什么,浏览器是这样约定的。

一个形象的比喻:

IP就像经纬度,域名是人类给这个经纬度取的对应的地名。网站则是在这个经纬度上的房子(主机)上某一个特定的门(端口)里的房间,当你进门说请给我一杯水(URI)时,房间里的服务者(后端程序)就会视情况来给你一杯水(成功访问到资源)或者不给你并且让你滚(访问被拒绝)。当水被送上来,你看着花里胡哨的杯子(前端页面),开始愉悦的喝水。并且感叹:今天的世界依旧美好(并不)

如何把网站发布到互联网?

由上可知,我们发布到互联网上至少需要有一个公网IP,最好有一个好记的域名和一台二十四小时都不停机的主机。那么公网IP,个人用户很难自己拿到。我们可以到腾讯云,阿里云之类的主机提供商那里租一台拥有公网IP且可以二十四小时运行的主机。

域名也可以到腾讯云,阿里云上购买,但在他们上面购买需要备案。可以考虑去Goddady上购买,便宜又皮实。反正用起来都一样

有了这些之后,我们就可以把写好的Web程序放到租用的主机上,部署好,绑定到某一端口。然后把域名解析到我们的IP上。Congratulations! 你的网站可以被访问了。

Github Page

当然,如果你的网站只需要响应用户的对文件的请求,那么Github Page是一个好的选择,它免费,且送你一个.github.io的二级域名。并且也支持你使用自定义的域名。就像我的这个博客,就是使用的Github Page。

使用教程可以访问MDN

如何编写网站/网页?

这类的教程很多,无论你选择开发使用的语言是什么都需要HTML+CSS+JS来让用户看到更漂亮的网站。

可以从MDN中的Web入门开始看起。

前端/后端是什么?

前端泛指HTML/CSS/JavaScript等文件组成的页面内容。

后端指使用Python,PHP等语言编写的,用户无法看到的逻辑处理部分。

收录于#校园时光