计算机网络的源模型是ISO/OSI七层模型,它是在具体的网络协议比如TCP,HTTP之类并未制定前就成型的,是一种架构思想,换个说法即空中楼阁。
日后随着模型下的每一层对应的协议均涌现了优秀的实现,将这个抽象的理想模型变为了现实,于是它便从军事科研走向了日常生活的大规模应用,成为了网络世界的基础,就是目前大名鼎鼎的TCP/IP四层模型啦~
在了解这个模型前,要先熟悉以下几个名词:服务器,IP地址,域名,MAC地址,端口。
服务器是啥
服务器可以想象成一栋大厦,里面被划分成很多个房间(就是买服务器的时候所说的“空间”啦)
一般直接买服务器的话买的是毛胚房,买空间的话则买的是精装房,服务器提供商帮忙把基础设施都配置好了。比如用于响应http请求的Apache,管理数据库的MySQL全都帮你安装好了,你直接把你建的网站传上去你买的的空间让它住下,等着别人来访问就好了。
服务器和我们自己的电脑有何不同呢?
其实是一猫一样的,只不过是台性能强劲能24小时不关机运转的电脑而已,所以买服务器要钱吶(电费,管理员的人工管理费,服务器的硬件费等等)
再次使用大厦的比喻,其实就是个人电脑相当于私人住宅(默认设置是不能外人访问,并且多人访问可能崩溃),服务器则是大酒店(默认设置是谁都可以访问,并且访问人数多也不崩溃)。
等等!可以把自己的渣渣电脑变成服务器吗?当然可以!装修装修就好了!私人住宅摇身一变大酒店只要998只要998!!安装一些 响应http访问请求的软件 + 支持后台程序运行的语言包就好了 ~
服务器有很多种类型,按应用协议来划分有FTP服务器,HTTP服务器等(最常见的服务器类型,用于提供浏览网站里的网页的服务)。下文讨论的服务器搭建专指网站服务器。
安装http响应程序:比如用windows系统的话把自带的IIS安装一下(或者下个开源的Apache),用Linux系统的话则装个Nginx啥的
安装支持网站后台程序运行的语言环境:PHP是世界上最好的语言!!逃。。开玩笑的辣~其实后台程序开发啥语言都可以,配置好环境,能让程序跑起来就成了~PHP目测是WordPress之类用它写的CMS带火的。。。。作为一个靠js吃饭的前端er,支持的必须是Node啊
唠了这么多。。其实有个捷径,下个Wamp Server然后一路傻瓜式地安装好,你的电脑就自动配置成服务器了
如何访问服务器
酒店开好了,我们怎么找到酒店里某个放了我们网站的房间呢?专业术语:如何访问服务器某个目录下的xx.html文件
这时候就是 域名、IP地址、端口号 大显身手的时候了,拿某天你想去百度总部,问了下朋友百度总部在哪来举个栗子:
域名 | IP地址 | MAC地址 | 端口号 |
---|---|---|---|
百度总部 | 北京市海淀区上地十街10号百度大厦 | 经度39.9042° N, 纬度116.4074° E | 13层04室 |
baidu.com | 202.108.22.5 | 00:0A:02:0B:03:0C | 8080 |
可以看到,域名 跟 IP地址 是同一个玩意儿,只不过域名更便于人们记忆。
IP地址 就是服务器大厦的名字,是逻辑上的地址。
至于 MAC地址,就是传说中的网卡地址啦,电脑出厂前就烙在网卡上了,用于唯一地标识电脑网卡,是物理上的地址。
局域网内的主机要访问外网的主机则必须领一个IP地址。从外网进入局域网访问某台主机,则必须将目标主机的IP地址转换为它的MAC地址。
域名 则是服务器空间的名字(所以叫域名嘛=。=被划分好的某块区域的名字)
域名解析 就是把域名解析到一整栋服务器大厦的IP地址,域名绑定 则是把解析好的域名绑定到服务器里的某个房间。
端口 又是啥?
端口就是服务器提供各种各样服务的接口。比如一栋全能型大厦的服务器,提供所有它能提供的服务,里边有网吧,有餐馆,还有专门用来堆资料书籍和卡片的数据库(服务器也有分类的,比如专门用来放数据的数据库服务器),需要这些服务而去访问服务器的人数不胜数,而且各有所需,有人想吃饭,有人想上网,有人想查资料。如果服务器大厦只有大门的话那就太坑了,全都一股脑涌进去,拥挤且难以找到自己需要的那个服务,于是就有端口这货啦。
公认端口有0-1023号,比如基于TCP协议用于提供http服务的80端口(可以想象成服务器的大门),提供邮件服务的25号端口(可以想象成挂在服务器大厦墙上的信箱)……还有1024-65535号的动态端口,他们都可以由我们自定义提供哪些服务。
一般80端口出于安全考虑是被封掉的,提供http服务的端口号被重定向为自定义的端口号,比如8080或者别的。(现在不是路不拾遗夜不闭户的时代了,世风日下,大家都极少把大门打开,要干啥都不走大门80端口了,而改为爬烟囱之8080端口。。)
总而言之能让服务器大厦和外界通讯就是端口的作用,管你是信箱还是烟囱还是窗户还是大门呢,他们都是端口~
结语
关于web开发方面的科普,如何让你的网站接入网络世界的部分已水贴完毕,另贴一介绍网站开发技术的超赞科普文