1.Web Server 是干什么的?现在有哪些Web Server?
Web Server 可能有两个意思,
(1)指代硬件,一台计算机,它上面存储的有网络服务的软件和网站的组成文件。
(2)指代软件,用来控制用户如何访问网络托管文件的几个部分,比如HTTP服务器,它能够理解URLS(网络地址)和HTTP。
每一台网页服务器(第1个意思)会运行至少一个网页服务器程序(第2个意思)。
常见的网页服务器程序(第2个意思)有:
- Apache软件基金会的Apache HTTP服务器
- Microsoft的Internet Information Server(IIS)
- Google的Google Web Server
- Nginx公司的nginx
- 淘宝从nginx改良的Tengine
- lighttpd公司的lighttpd
- Cherokee_(Web服务器)
- Microsoft的FrontPage
2 Web Server 监听80端口,什么意思?
在网络技术中,端口指代有两种,第1种是物理意义的端口,比如交换机、路由器的接口。第2种是指TCP协议中的端口,端口号的范围从0-65535,比如浏览网页服务的80端口,用于ftp服务的21端口。
Web Server 监听80端口,就是监听服务器上的80端口是否有人访问,如果有,则做出对应的应答。
3.Web Server 如何管理各种web资源?
待续
4.Nginx, Apache, Tomcat的区别是什么?
Web Server是一个很宽泛的概念,Apache 指Apache基金会下面的Apache Http Server, Tomcat指Apache基金会下面Jakarta项目开发的一个应用,该应用实现了对Servlet和JavaServer Page(JSP)。严格的来说,Apache/Nginx是「Http Server」, 而Tomcat是一个「Application Server」。更准确的说,Tomcat是一个「Servlet/JSP 」应用的容器(container)。
一个HTTP Server关心的是如何处理HTTP请求,关心在HTTP协议层面的传输、访问和控制。因此,在Apache/Nginx上,拥有代理和负载均衡等功能。客户端通过HTTP Server,能够访问服务器上的资源(图片,文件)。通过CGI技术(通用网关接口,外部扩展应用程序与HTTP Server交互的一个标准接口),也可以将处理过的内容通过HTTP Server分发,但HTTP Server 的职责始终是将服务器上的资源如实的通过HTTP协议转发给客户端。
对于像Tomcat这样的Application Server来说,首要的任务是支持开发语言的runtime(Java之于Tomcat,Python之于Django),保证应用(Application)能够在应用服务器(Application Server)上运行。其次,要支持应用的相关规范,例如类库、安全方面的特性。对于 Tomcat 来说,就是需要提供 JSP/Sevlet 运行需要的标准类库、Interface 等。最后,为了方便,Application Server往往也会集成HTTP Server的功能,但是不如专业的HTTP Server那么强大。因此,在实际的开发中,Application Server往往在HTTP Server背后,执行一些应用,将动态内容转换为静态内容后,通过HTTP Server分发到客户端。