上网就是请求数据
当我们上网时, 网页上的内容是如何被我们看见的呢?
我们先不直接解决这个问题, 我们先来做一个小实验:
实验
我们打开 chrome 浏览器为例, 在 chrome 浏览器地址栏中输入: Chrome://version/
从上图我们可以看到 Profile Path (临时文件夹). 这个文件夹是 Chrome 浏览器用来存放上网浏览的页面和资源文件.
我们先请客这个文件夹中的全部内容, 然后重新打开 Chrome 浏览器, 浏览几个网页. 结果这个文件中又多了很多的内容:
总结
通过这个实验, 我们可以得出结论: 上网的时候是有文件传输的.
我们经常能感觉第二次打开网页会比第一次块, 这是因为第一次打开网页的时候, 所有的图片都已经存过来了. 这也就是为什么每次使用软件清理, 都能释放很多硬盘空间. (网页不是一个文件, 而是一堆文件)
所以, 我们之前提出的问题的答案是: 上网就是请求数据, 就是文件传输.
服务器上存放着网页的相关文件, 包括 html 文件, css 文件, js 文件, 图片等. 当我们打开浏览器, 输入网址, 我们计算机就会对这些文件发出 HTTP 请求. 服务器在收到请求之后, 会把这些文件通过 HTTP 协议, 传输到我们计算机中 (保存到了刚才那个临时文件夹中). 这些文件, 将在我们计算机本地的浏览器中, 进行渲染, 呈递.
服务器
我们从硬件和软件两个层面来阐述一下服务器的概念.
硬件
- 服务器就是计算机, 只不过比咱们用的笔记本的配置高很多. 并且 24 小时不断电, 不关机
- 服务器上存储着网页的相关文件. 一旦有访问者浏览网站, 服务器就将发送这些文件给访问者
- 服务器一旦关机, 网页就无法访问了
软件
- 网站分为前端和后端, 这里的后端也称为服务器端
- Java, C#, Python 等语言可以开发服务器端程序
- 目前 JS 也逐步发展可以开发后端, 比如 Node.js
浏览器
浏览器是安装在客户的电脑里面的, 是一个软件, 能够让用户上网. 浏览器有版本之分, 有浏览器兼容问题, 课程后面具体学习.
HTTP
超文本传输协议 (Hypertext Transfer Protocol) 是一个文件的传输协议. 我们上网的时候, 所有的文件都是通过 HTTP 这个协议从服务器上传输到客户的电脑里面的.
我们必须树立一个思想, 就是每一个网址, 都对应着确定的服务器上的文件.
举例
http://www.baidu.com/1.html
就是服务器上面的 1.html 文件
http://www.baidu.com/
看似没有精确到一个文件, 但是有一个规定, 就是 index.html 是默认的首页文件. index 就是英语 “目录” 的意思.
http://www.baidu.com/aaa/b.html
服务器上面有一个 aaa 文件夹, 这个文件夹里面有一个 b.html 文件.
总结
网页是真物理的文件. 并且一个网页是很多的物理文件组成的: html 文件, 图片文件, js 文件, css 文件. 这些文件需要通过特殊软件才能上传到服务器上, 然后就能让用户看了. 用户通过浏览器, 访问网址, 服务器上面的文件就会通过 HTTP 请求悄悄地传输用户的电脑的临时文件夹中, 在用户的电脑中执行, 渲染, 呈递.