更新时间:2020-12-04 17:49:09 来源:极悦 浏览6062次
很多人都知道Web Server,但说到HTTP Server却很少有人知道,那么HTTP Server是什么呢?一般来说,HTTP Server 也是我们常说的Web服务器,大名鼎鼎的 Apache,还有微软的 IIS (Internet Information Server),开源领域的有 Lighttpd 和最近风头正劲的 Nginx 都是典型的Web服务器。
HttpServer类实现一个简单的HTTP服务器。HttpServer绑定到IP地址和端口号,并侦听此地址上来自客户端的传入TCP连接。该子类HttpsServer实现了一个处理HTTPS请求的服务器。Web服务器传送(serves)页面使浏览器可以浏览,然而服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求。
一个或多个HttpHandler对象必须与服务器关联才能处理请求。每个此类HttpHandler都注册有一个根URI路径,该路径表示应用程序或服务在此服务器上的位置。处理程序到HttpServer的映射由HttpContext对象封装。HttpContext是通过调用创建的createContext(String,HttpHandler)。找不到任何处理程序的任何请求都会被404响应拒绝。通过提供对象,可以在该对象外部进行线程管理 Executor。如果未提供,则使用默认实现。
下面是有 Node.js 写的一个最简单的 HTTP server// 文件名 index.js
// 使用 node index.js 可运行本程序
var http = require('http')
var server = http.createServer( function (request, response){
response.end('这是页面内容,你请求的路径是:' + request.url)
})
server.listen(8080, function(){
console.log("正在监听 %s 端口", 8080);
});
你不用看懂这段程序,你只需要知道两件事情:
1. 这段程序监听了当前机器的 8080 端口。
2. 一旦外部访问当前机器的 8080 端口,这段程序就会返回一段文字。
这就是一个最简单的 HTTP server。
提供 HTTP 服务的 server 分为两类。
1. 静态文件服务器这种服务器简单地根据访问路径,返回对应的文件。比如用户访问 http:// 123.123.123.123:8080/a/b/c/d.html,那么这种服务器就会在网站根目录找到 a/b/c/d.html 文件,原样返回给用户。
2. 动态内容服务器这种服务器返回的内容一般不是文件,而是动态生成的字符串(比如从数据库中获取的字符串)。比如用户访问 http:// http://weibo.com/home,那么这种 http://weibo.com 的服务器则会返回当前用户最新的微博消息。显然每个用户得到的内容是不一样的。
Web服务器可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response),例如送回一个HTML页面。为了处理一个请求(request),Web服务器可以响应(response)一个静态页面或图片,进行页面跳转(redirect),或者把动态响应(dynamic response)的产生委托(delegate)给一些其它的程序例如CGI脚本,JSP(JavaServer Pages)脚本,servlets,ASP(Active Server Pages)脚本,服务器端(server-side)JavaScript,或者一些其它的服务器端(server-side)技术。无论它们(译者注:脚本)的目的如何,这些服务器端(server-side)的程序通常产生一个HTML的响应(response)来让浏览器可以浏览。
讲到这里,对于HTTP Server是什么的问题就相当明朗了,HTTP Server实际上就是Web服务器,HTTP Server的由来实际上是因为Web服务器可以解析(handles)HTTP协议。想深入学习Web服务器的小伙伴可以观看本站的Tomcat服务器教程,里面对Apache和 IIS都有很详细的介绍。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习