前言

从这篇开始我们就开始正式学习如何搭建一个属于自己的网站了

基本结构

网站根据网页的类型一般分为动态网页和静态网页

前者的文件多半由php,aspx等网页文件组成,后者多为html网页文件组成

但是一个基本的网站结构是不会改变的,html,css,js,pic

html是网页的源代码,浏览器根据从服务器请求来的html源代码在客户端构建网页

css则是负责网页内各个元素的样式设计,一个好看的网页离不开好的css

js则使网页能有一定的交互能力,使网页能够一定程度上“动态化”

pic就不用多说了,照片,视频等各种媒体资源,使得网页更加丰富多彩

运行流程

了解一些基本的流程对之后维护网站有着很大的帮助,对原理和流程的理解也可以很好的帮助大家后期举一反三

可以让你在网站出问题的时候能够精确的找到问题所在,至少不是像无头苍蝇一样不知所措

因为本系列教程为小白向,所以我也不会教大家太多实用知识,更多的是讲解基础的东西,所以这就需要大家善用搜索引擎,自己学习更多知识

后面部分新的名词我可能也不会解释,希望大家如果感兴趣的话自行去搜索引擎搜索

搜索引擎是大家学习的好工具,善用搜索引擎可以很好解决一些学习中遇到的问题

这里我推荐平常使用微软的bing,不仅收录了很多的中文网页,也收录了很多英文网站。很多时候有些疑难杂症可能在中文互联网内找不到解决方法,但在全球范围内,说不定就找到的很好的解决方法

当然因为某些原因如果bing都搜索不到,那就可以上Google了,至于怎么上,不要问我,不在本教程的讨论范围内

言归正传,其实网站这种一般是被动式请求。

也就是客户端向网站服务器请求,然后服务器应答客户端,向客户端传递网站页面。

当然现在也有通过websocket进行双向通信的,也有通过service worker进行浏览器通知的

但是我们正常搭建博客是用不到这么复杂的,当然后期自己学会很多知识后也可以尝试一下上面的各种玩法

域名和IP

域名

相信域名大家应该不陌生,例如<bing.com>就是一个com后缀的顶级域名

这里的顶级不是说它很高级,很牛b,而是指域名的根域名,也就是赤裸裸的 <bing.com>

而平常什么 <www.bing.com>、<cn.bing.com> 之类的,就是二级域名,同理,xxx.xxx.bing.com它就是三级域名

不过大家一般都不会用到三级域名,一般二级就够用了

IP

ip就像门牌号一样,或者说是在网络中的地址一样,而域名和ip的关系其实就是类似于给人取了一个好听的名字一样

访问域名的实质其实就是访问ip

而这里ip也分为公网ip和内网ip,公网ip顾名思义就是在公共网络上的ip,在没有外界因素的情况下,全球都可以直接访问

内网ip顾名思义也就是内部网络的ip,有时候也称私网ip,这个ip必须是在同一个网络里的人才能访问,在内网以外的人是无法通过ip正常访问到服务器的

而至于计算机是如何通过域名得到域名绑定的ip,这就涉及到dns的知识,这个我们在域名那一篇再讲

协议

网站请求一般采用http协议,就像http://www.bing.com/前面的“http://” 就是协议头,所以同理,不同的服务也会有不同的协议和标识

像ftp就是“ftp://”

但是纯http是明文传输,所以不安全,容易遭受中间人攻击。我们一般会利用SSL/TLS来加密传输数据来保证安全

而使用了SSL/TLS加密的网站前面的协议头就会由原来的http变为https

说底层一点,这两个协议头走的端口也是不一样的

端口

这篇文章写得很好,介绍了什么是端口

深入理解什么是端口(port)

我这里就浅浅讲一下,http一般走的是80端口,而https一般走的是443端口

不是说就非这两个端口不可,可以是非默认端口,但是在访问的时候就必须加上修改后的端口,浏览器才知道该向哪个端口请求

例如https://www.bing.com/ ,它所使用的端口就是443,默认的https端口

如果你把端口改成666,那么之后地址就会变成这样https://www.bing.com:666/

tips:家用宽带即使有公网ip也会封掉80和443端口,所以不能用默认端口来建站

有点不美观,而且还会影响网站的收录,所以一般不建议使用非默认端口

注:端口前的冒号请使用英文冒号!!!!!!

当然自己搭建的其他服务爱用哪个端口都可以

tips:自己的服务一般不要用10000一下的端口,10000一下的端口很多都是被系统服务所使用,会造成端口的抢占问题,使系统服务或者自己的服务无法正常使用。当然如果你确定某个10000一下的端口不会被使用那使用也是没啥问题的

请求

请求一般分为Get和Post两种

这篇文章讲得很好可以看看 浅析HTTP中请求GET/POST

我下面只是讲得通俗一点,大家可以看完上方的链接再看我下面的讲解

Get

啥是get?

get请求其实很直观的

你输入一串网址访问其实就是get行为的请求

例如访问bing来搜索“啥是get请求” https://cn.bing.com/search?q=啥是get请求

这个就是一个典型的带参数的请求,“?”后面的“q”就是传入的参数

所以get请求的参数内容一般在请求地址中就可以看到

但是相信大家肯定也发现了一个问题,那就是采用get请求的话那参数内容岂不是会直接暴露?

所以有时候我们就会采用POST请求

Post

post请求和get不同,post请求的参数在请求体中而不是在链接地址中

所以内容会受到SSL/TLS加密,确保请求内容不会被泄露

就像经典的请求Minecraft的AccessToken,就是将Minecraft账号密码通过Post请求至mojang服务器,来获得AccessToken

而这个AccessToken就是你的账户凭证,类似于cookie,用来在进入开启正版验证的服务器时的账号验证

后记

很久没写这类教程了,自己玩网站也玩了很多年了,部分内容可能会有遗漏

如果大家遇到我没提出来但是又不懂的地方可以提出来,我也会补充在教程之中的

这篇文章基础理论逻辑知识比较多,但如果真正掌握,融会贯通了这些知识,可以说对大家以后玩各种服务(不限于网站)会有很大的帮助

很多东西你知道原理之后举一反三其实就很容易了的

后面就要开始真正将如何开始自己的网站了

我之后也会尽可能的给大家找图,纯文字有时候理解起来可能还是比较难懂

为毛我的眼里常含泪水,因为我老是中枪。———— 出自 不管外表怎样强悍我都是受