浅谈HTTP Server是什么 - 极悦
首页 课程 师资 教程 报名

浅谈HTTP Server是什么

  • 2020-12-04 17:49:09
  • 6247次 极悦

很多人都知道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都有很详细的介绍。


选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交