1.服务端开发总目标:
网页 —> 静态网站 —> 动态网站
网页: 我们使用 html、css、Javascript做出来的页面就是网页。 只能自己使用浏览器打开。其他人是不能通过浏览器访问到的。
静态网站: 将我们做好的网页网页,放入服务器指定的目录下,然后使用 http://ip:port/index.html 访问到的网页(http://127.0.0.1:3000/index.html 、http://192.168.97.103:3000/index.html)。静态网站的特点是无论怎样刷新页面,页面的数据都是一样的,不会放生改变。
动态网站: 同样还是使用 http://ip:port/index.html (例如:http://192.168.97.103:3000/index.html) 访问到的网页,但是每次页面所显示的数据是不一样。因为页面上的数据来自于数据库(MySQL)。
开发动态网站需要一种后端技术的支撑: PHP、 JSP、 ASP、Nodejs等。
2. Web服务器
问题: 当我们写好一个html文件,放在桌面上时,别人能不能通过浏览器访问?
答: 不行。 必须将我们的html文件放入web服务器,其他人通过网络才能访问。
1.1 什么是服务器?
服务器可以从硬件、软件(系统软件、应用软件)两个角度描述。
按硬件描述: 服务器就是一台超级计算机。
按系统划分: 在硬件上安装了什么操作系统,就可以称为该系统的服务器
例如: linux服务器、windows服务器、unix服务器等。
按软件划分: 在操作系统中安装了什么软件,就可以称作该软件的服务器
例如: apache服务器、数据库服务器、邮件服务器等。
1.2 Web服务器
Web服务器就是安装了Web服务软件,能够提供网站服务的服务器。淘宝、京东、新浪等等
常见的Web软件:
Apache、Nginx、IIS、Tomcat、Nodejs 等。
Apache服务器、Nginx服务器、IIS服务器、Tomcat服务器、Nodejs服务器
PS: web服务器又叫做http/httpd服务器
3. 网站基础概念
3.1 URL地址解析
浏览器中输入的地址: 127.0.0.1/p-buy/index.html
实际全地址: http://127.0.0.1:80/p-buy/index.html
-
http: 协议名, http协议(超文本传输协议)
-
127.0.0.1: 服务器IP地址
-
80: Apache服务器的默认端口号
-
/p-buy/index.html: 要访问的文件路径
3.2 IP地址
IP: Internet Protocol 互联网协议,是为计算机网络相互连接进行通信而设计的协议。
- 处于网络(互联网、局域网)上的任何一台计算机都有一个独立的ip地址。
- ip地址由4段3位长度的数字组成, 3位数字的取值范围 0-255。如: 102.15.201.10
特殊ip:
- 127.0.0.1 : 回环地址,每一台电脑都有该ip,指向当前使用的电脑
- 192.168.**.* *: 该网段是专门用于做局域网的ip段。
3.3 域名
域名(Domain Name): 每个网站都有一个自己的域名。人们可以在浏览器中输入域名来访问对应的网站。
淘宝: www.taobao.com
百度: www.baidu.com
特殊域名:
localhost: 本地主机。在浏览器中输入localhost就会访问当前操作的这台电脑的web服务器。
3.4 DNS
核心: 域名虽然也是唯一的,但是要在互联网上找到一个具体网站,还是要靠IP地址。
DNS: Domain Name System 域名系统。在DNS服务器中保存了域名和IP的映射关系。主要工作是将域名转换为IP地址,因为我们通过浏览器访问网站时,实际上是去找对应的IP地址。
域名: 网站的名称,就相当于人名。
IP: 网站在网络上的实际地址,就相当于人的住址。
一般访问网站时都是输入域名的(例如: www.tmall.com www.163.com),但是在实际访问时域名会被DNS转换为IP地址。
DNS工作机制图:
hosts文件可以手动设置域名和IP的映射关系
dns缓存可以保存曾经访问过的域名和IP的映射关系
工作步骤:
-
在浏览器中输入 www.taobao.com,按下回车
-
浏览器首先在本机中的 hosts文件和dns缓存中查询,www.taobao.com的IP地址。如果有,则获取该IP地址,然后去访问淘宝服务器。 如果没有,则向dns服务器发送解析请求。
-
dns服务器获取到浏览器请求信息之后, 将域名转换为IP地址,再将IP地址返回给浏览器。
-
浏览器获取到IP地址,然后通过IP地址访问淘宝服务器。
windows下查看dns缓存:
ipconfig /displaydns
ipconfig /displaydns > c:/dnscache.txt 将dns缓存导入到c:/dnscache.txt文件
windows下清除dns缓存
ipconfig /flushdns
苹果/安卓手机: /etc/hosts
3.5 端口
端口是英文port的意译。端口可以理解为区分服务器上服务的标号。
已被占用的著名端口号:
80: Web服务器端口号, Apache、Nginx、IIS
3306: MySQL默认端口号
8080: tomcat默认端口号
21: FTP端口号, FTP软件
22: SSH端口号
25: sendmail端口号
…
因为Web服务的默认端口号是80,所以在地址栏可以不输入,但是如果将端口号改为其他的(如:8088),那就必须输入端口号,才能正常访问。
端口号的取值范围: 0-65535
3.6 C/S和B/S架构
C/S软件体系结构,即Client/Server (客户端/服务器)结构。
核心特点:要下载一个客户端,例如:QQ、微信、LOL、王者荣耀、绝地求生等。
C/S结构的软件,服务器主要做数据转发工作。以QQ聊天为例:
任何两个人聊天的内容都会发送到QQ服务器上,然后再由QQ服务器进行转发
王小贱和小仙女聊天
唐小贱发送一句话,这句话会先发送到QQ服务器,再由QQ服务器转发到小仙女的客户端。
B/S软件体系结构,即Browser/Server (浏览器/服务器)结构。
核心特点:使用浏览器(Chrome、Firefox等)进行操作,例如:淘宝、京东、新浪等。
B/S结构软件,服务器承担了所有业务,浏览器只是用来显示最终内容的。
思考问题: B/S的优势和劣势, C/S的优势和劣势。
B/S的优势: 部署方便,容易维护。用户使用方便(一个浏览器即可)。
B/S的劣势: 客户端功能简单
C/S的优势: 客户端功能强大
C/S的劣势: 必须下载客户端非常麻烦,升级维护麻烦