网站服务器既指硬件层面上用于运行网站的计算机,也指用于提供网站服务的软件程序。
同样,客户端既指用户访问网站的电脑,也指跟网站服务器进行交互的浏览器程序。
客户端根据网站的域名,通过域名解析服务,得知服务器的IP地址,从而跟服务器进行网络通讯。多个域名可以解析到同一个IP,即同一台服务器提供多个网站服务。一个域名也可以解析到多个IP,不同的客户端得到不同的IP,用于访问量很大时分流的服务器的负荷。
网站服务器与客户端之间通过HTTP协议进行通讯,传输的内容是HTML文档,以及HTML代码中引用的CSS样式文件、JavaScript脚本文件、图片文件等。
HTTP协议是明文传输的,为了提高安全性,包装一层TLS加密协议,就变成了HTTPS协议。这就要求服务器提供一个证书,证明客户端获取到的网页是由域名的所有者提供的。
服务器提供的HTML文档可以是静态的,即预先创建和编辑好的文件;也可以是由程序动态生成的,比如从数据库读取信息然后放入到网页中。获取和加工数据的程序称作网站的后端,网页模板文件和脚本样式合称网站的前端。
静态网站性能高,安全性好,但功能单一。动态网页正好相反,占用的服务器资源多,安全性低,但功能丰富。随着软件工程技术的发展,网站的实现技术不断迭代更新,发展出了将静态网页和动态网页相调和的一种方案。
服务器提供的网页仍是静态文件,在客户端通过脚本程序动态地更新网页的内容。脚本程序会调用服务器上的接口程序来获取数据,提交输入等。这种架构方式称作网站的前后端分离,前端专做网页,后端专做接口,各自自成体系。
前后端分离的架构既提高了网站的性能,也方便了网站的开发。前后端可以使用不同的技术框架,由不同的人员开发,使用同一套接口定义即可。接口不变时,可独立更新代码。接口可以自己开发,也可以是调用第三方的服务。
网友评论