Web概述
参考资料
简介
web,网状物
Web 是万维网(world wide web)的简称
Website 即网站,是 网络和站点 的结合
Tim Berbers Lee(蒂姆·伯纳斯·李)在 1991 年提出了万维网的概念
1994 年,他创立了 W3C 组织,旨在发展 Web 规范,达成全球统一标准
常见的 Web 客户端就是浏览器,例如谷歌、火狐浏览器等等
通过网络,浏览器可以访问 Web 服务器上的内容
Web 服务器上的内容是一些互相链接的 超文本资源,资源由 统一资源标识符(URI) 标识
而资源需要通过 协议 进行传输,常见的有超文本传输协议(HTTP)等等
network 也是指网络,但是偏向于底层基础;Web 则是偏向应用层
-
Internet(互联网、因特网)
- Web,是 Internet 的一部分
- E-mail:电子邮件
- FTP:文件传输协议
“Cloud(云)“更多地被视为一个商业概念,而不是一个单纯的技术概念
| Web | 类比 |
|---|---|
| Web 环境 | 餐厅 |
| Client | 你和你的家人 |
| Server | 服务员 |
| Browser | 菜单 |
| Web page | 菜单里的内容 |
编程语言
客户端语言
HTML、CSS、JavaScript
服务器语言及对应的框架
PHP:ThinkPHP 等等
Java:Spring 等
Python:Django、Flask、Tornado 等等
Go
C#:ASP.NET 等等
JavaScript 目前有 nodejs,也可以用于服务器端开发
内容管理系统(CMS)
目的是:为了有效解决用户网站建设与信息发布中出现的常见问题和需求
CMS 几乎不需要编程,没有经验的人也可以轻松搭建一个网站
例如:Wordpress、Joomla 等等
缺陷是 自定制性较差,不能随意实现自己想要的功能
数据库
由于 Web 应用的兴起,可能需要
1、存储、管理 大量的数据 等等
2、为了保持 数据的持久性,防止数据丢失带来的损失
3、需要进行数据的 筛选和检索
4、应对 高并发 的使用场景
这些需要通过数据库来实现
-
分类
-
关系型数据库
MySQL、Oracle、SQlite、PostgreSQL 等等 -
非关系型数据库(Not only SQL,简称 NoSQL)
HBase、MongoDB 等等
适用于:数据模型比较简单,对数据库性能要求较高,不需要高度的数据一致性,大规模数据集合,多重数据种类
-

移动端
手机和平板的流行使得网站和软件发生了改变
原先的网站在电脑上可以正常显示,但是在手机等移动设备上可能会出现问题
针对这个问题,开发者有几种选择:
-
将网站优化成 响应式网站
针对不同设备,网站会自适应不同设备的分辨率
注意:整个页面会进行调整,优先显示的内容区块会不一样-
优:易于管理,易于做搜索引擎优化,易于营销等等
-
缺:对于一些老旧的设备可能会不支持
-
-
2、做成 原生 app
即安装在对应操作系统中的 app,需要使用对应的语言才能开发-
优:用户体验是最佳的
-
缺:不能在不同系统上使用,更新需要再次下载,有的需要通过应用商店更新(需要得到批准),开发成本高,推广应用需要使用不同于其他的营销策略
-
-
3、做成 Web app
不需要安装,为移动设备专门设计一个站点-
优:同响应式
-
缺:一般主站和移动网站的域名是不同的,有时候需要进行重定向,用户体验可能会受到影响。维护的时候也需要二者同时维护
-
以上,响应式设计的方式是大势所趋。不过最终适合用户的才是最好的
服务器
服务器生成网页,储存网页,并将其分发到各个客户端上
服务器一般都位于被称为 数据中心 的房间里,需要控制 温度、湿度、消防系统、保安、供电
服务器之间以网线相连,很多数据都是通过 海底光缆 传输的
IP 地址和域名
全球各地的机器通过 Web 连接着,有些是服务器,有些是客户机
机器之间如何寻找和辨认?
每台机器是通过互联网协议 Internet Protocol(IP)地址来表示的,并且是唯一标识
类比
电脑—电话
IP 地址—电话号码
-
IP 地址的不同版本
-
IPv4
地址长度 32 位,共有 2^32 个 IP 地址
详细见 🔜计算机网络 -
IPv6
地址长度 128 位,共有 2^128 个 IP 地址
分为 8 段,每段 16 位,段与段之间通过冒号连接
形象比喻:IPv6 可以使得地球上的每一粒沙子都拥有一个 IP 地址
-
IP 地址不便于记忆,于是就有了 域名
我们可以通过 访问域名来代替长串的 IP 地址,更加方便
由于服务器只认识 IP 地址,所以需要有能够 将域名解析成对应的 IP 地址 的服务,它就是 域名系统 Domain Name System(DNS)
-
DNS
-
域名服务器
保存该网络中所有主机的域名和对应的 IP 地址 -
域名解析器
能够将域名转换成 IP 地址
-
域名必须对应一个 IP 地址
而 IP 地址不一定有域名
协议
人与人之间若要交流,则需要能够理解对方的语言,或者统一使用一种语言
而 Web 中的机器也一样,科学家们发明了各种协议,只要机器都遵循同样的协议就能互相交流
常见的协议,详细见 🔜计算机网络
-
TCP
是端到端(P2P)的 传输层 数据流传输服务的协议
不同主机的两个应用程序之间建立虚拟连接,TCP 报文就能够在连接的基础上进行传输【可靠、全双工】 -
UDP
是无连接的传输层协议【不可靠、简单的】 -
HTTP
设计最初目的是为了提供一种 发布和接收 HTML 页面 的方法 -
HTTPS
在 HTTP 的基础上添加了 SSL/TLS 握手以及数据加密传输 -
FTP,用于将文件从一台机器传送到另一台机器
-
SMTP,控制信件的中转方式,帮助计算机发送邮件时找到下一目的地
Web 程序员
任务:维持公司的网站运行良好
-
Web 前端(FrontEnd)
负责网站的外观 -
Web 后端(BackEnd)
负责网站服务器端的编写和维护,实现各种功能 -
质量主管(Quality Assurance Manager)
对网站的质量进行监控,可以向其他职位人员提出问题或者新需求 -
系统管理员(System Administrator)
保证 Web 服务器正常运作,负责一些硬件的维修和管理 -
全栈工程师(Full Stack)
以上职位的任务均能胜任
学习路径:
HTML
CSS
选择一门喜欢的服务器语言
JavaScript
Linux 命令行
总的来说,还是多多逛大型编程社区,学习新兴的技术
经常练习编程,实践