Web服务器
注:本文以 WDN 的知识为基础
概述
web服务器可以指代硬件或软件,它们是协同工作的整体
硬件:一台存储了 web服务器软件以及网站的组成文件(如HTML文档、图片、CSS样式、JS文件)的计算机,它接入到互联网并支持与其他连接到互联网的设备进行物理数据的交互
软件:包括控制网络用户如何访问托管文件的几个部分,至少是一台HTTP服务器。HTTP服务器是一种能够理解 URL网络地址(Uniform Resource Locator) 和 HTTP网超文本传输协议(HyperText Transfer Protocol) 的软件。一个HTTP服务器可以通过它存储的网站域名进行访问,并将这些托管网站的内容传递给用户的设备
当浏览器想要提取一个托管在网络服务器上的文件时,浏览器会通过HTTP请求这个文件,当这个请求到达正确的web服务器(硬件)时,HTTP服务器(软件)收到这个请求,找到这个被请求的文档(如果文档不存在则返回一个404响应),并将这个文档通过HTTP协议发送给
静/动态
静态web服务器是指将托管文件保持原样地传输到用户手中的浏览器,由一个计算机(硬件)和一个HTTP服务器(软件)组成
动态web一般只有几个HTML模版和一个巨大的数据库组成,而不是成千上万的静态HTML文档,这样使得维护和提供内容更加容易
托管文件
一个网络服务器需要存储这个网站的所有文件,包括所有HTML、图片、CSS样式表、JS文件、字体、视频等等
虽然你可以在自己的计算机上存储这些文件,但是在一个专用的web服务器上存储会更加方便,因为
专用web服务器可用性更强,会一直启动和运行
专用web服务器总是连接到互联网,而且有异地容灾等方式避免数据丢失
专用web服务器可以一直有一样的IP地址,也称为专有IP地址(不是所有的互联网服务提供者ISP都会为家庭线提供一个固定的IP地址)
专用服务器一般是外包给第三方专业提供者维护
通过HTTP交流
web服务器提供了 HTTP(HyperText Transfer Protocol超文本传输协议)支持,明确了如何在两台计算机间传输超文本(链接的web文档),协议是一套为了两台计算机交流而制定的规则,HTTP时一个文本话的、无状态的协议
文本化:所有命令都是纯文本且人类可读的
无状态:无论是服务器还是客户都不会记住之前的交流,仅靠HTTP并不能记住你输入的密码等等,你需要一个应用服务器来进行这样的工作
一般只有客户端可以发送HTTP请求,只会发送到服务器,通常服务器只能响应(服务器也可以通过一种叫做服务器推送的机制(HTTP/2),在客户请求之前将数据填充到客户的缓存之中)
在通过HTTP请求一个文件时,客户端必须提供这个文件的URL
网络服务器必须答应每一个HTTP请求,至少也要回复一个报错
在web服务器中,HTTP服务器负责处理和响应传入的请求
1 当收到一个请求时,HTTP服务器首先要检查所请求的URL是否匹配
2 如果匹配,网络服务器会传送文件内容返回浏览器,如果不是服务器会检查是否应该动态生成请求所需文件(服务器端动态编码)
3 如果两种都不想,那么就会返回 404 错误