一个基于webrick 的简单web服务器

使用ruby 自带的webrick 可以非常方便地实现一个web服务器。

webrick.rb 基本代码如下:

#!/usr/bin/env ruby

require ‘webrick‘

root = File.expand_path ‘html‘
server = WEBrick::HTTPServer.new :Port => 8000, :DocumentRoot => root

trap ‘INT‘ do server.shutdown end
server.start

使用命令ruby webrick.rb 即可启动一个监听在8000端口的web服务器,

根目录在当前目录的子目录html里。代码中的web根目录也可以是一个绝对路径。

在web根目录中创建一个示例html文件,立马可以看到效果。比如:

echo "hello world" > html/index.html

上面的web 服务器没有日志功能,所有日志直接打印在console

可以稍加润色一下,加上日志功能,代码如下:

#!/usr/bin/env ruby

require ‘webrick‘

#webroot
root = File.expand_path ‘html‘

#access log
logfile = File.open ‘log/webrick.log‘, ‘a+‘
access_log = [ [logfile, WEBrick::AccessLog::COMBINED_LOG_FORMAT], ]
log = WEBrick::Log.new logfile

server = WEBrick::HTTPServer.new :Port => 8001, :DocumentRoot => root, :Logger => log, :AccessLog => access_log

trap ‘INT‘ do server.shutdown end

server.start
时间: 2024-08-09 10:31:34

一个基于webrick 的简单web服务器的相关文章

基于flask的简单web服务器 docker化

其实就是将web服务器的部署操作用docker形式来替代,那么也就是用dockerfile来实现部署操作. 下面是dockerfile FROM ubuntu MAINTAINER [email protected] RUN apt-get update RUN apt-get install -y curl git unzip python-zmq vim RUN apt-get install -y python-flask WORKDIR /work ADD app.py . CMD ["

一个基于AIO实现的简单web服务器

一下是一个基于AIO实现的简单web服务器,这是一个简单例子 /** * 一个简单的web 服务器<br/> * 通过浏览器输入localhost:8080/访问 * * @author Joeson * @since 2014/05 * */ public class AioServer implements Runnable { private AsynchronousChannelGroup asyncChannelGroup; private AsynchronousServerSoc

【Web后端笔记】基于Socket实现的简单Web服务器搭建

我们在地址栏中输入的内容称为通用资源标记符(Universal Resource Identifier,URI)它有很多种样式,在Web中我们通常称为统一资源定位符(Uniform Resource Locator,URL)的形式,它的格式如下: 协议://主机[.端口号][绝对路径[?参数]] 在http://www.cnblogs.com/DebugLZQ/中,http表示协议名称;www.cnblogs.com表示主机的地址:可选的端口号没有出现,那么,将使用http协议默认的端口号80:

构建一个基于 Spring 的 RESTful Web Service

本文详细介绍了基于Spring创建一个“hello world” RESTful web service工程的步骤. 目标 构建一个service,接收如下HTTP GET请求: http://localhost:8080/greeting 并返回如下JSON格式的问候语: {"id":1,"content":"Hello, World!"} 你也可以通过指定查询字符串中的可选参数name来定制问候语: http://localhost:8080

java实现简单web服务器(分析+源代码)

在日常的开发中,我们用过很多开源的web服务器,例如tomcat.apache等等.现在我们自己实现一个简单的web服务器,基本的功能就是用户点击要访问的资源,服务器将资源发送到客户端的浏览器.为了简化操作,这里不考虑资源不存在等异常情况.web服务基于的是HTTP协议,用户在浏览器的地址栏输入要访问的地址,服务器如何得到该地址是个关键.先看下一般的HTTP请求和响应报文的一般格式: HTTP 请求报文 HTTP 响应报文 web服务器获取一个用户的连接时,会初始化一个线程和用户通信,代码如下:

基于Java实现简单Http服务器(转)

基于Java实现简单Http服务器(转) 本文将详细介绍如何基于java语言实现一个简单的Http服务器,文中将主要介绍三个方面的内容:1)Http协议的基本知识.2)java.net.Socket类.3)java.net.ServerSocket类,读完本文后你可以把这个服务器用多线程的技术重新编写一个更好的服务器.           由于Web服务器使用Http协议通信的因此也把它叫做Http服务器,Http使用可靠的TCP连接来工作,它是面向连接的通信方式,这意味着客户端和服务器每次通信

jmGraph:一个基于html5的简单画图组件

jmGraph:一个基于html5的简单画图组件 特性: 代码书写简单易理解 面向对象的代码结构 对图形控件化 样式抽离 模块化:入seajs实现模块化开发 兼容性:暂只推荐支持html5的浏览器:ie9+,chrome,firefox等. jiamao/jmgraph · GitHub APIs jmgraph是一个基于html5的WEB前端画图组件. 前端画图对象控件化,支持鼠标和健盘事件响应,可对单个控件样式设定,支持简单的动画处理.可大大地简化前端画图.

Socket网络编程--简单Web服务器(1)

这一次的Socket系列准备讲Web服务器.就是编写一个简单的Web服务器,具体怎么做呢?我也不是很清楚流程,所以我找来了一个开源的小的Web服务器--tinyhttpd.这个服务器才500多行的代码,使用C语言.这一小节就不讲别的内容了.就对这个程序进行一些注释和讲解了. 主函数: 1 int main(void) 2 { 3 int server_sock = -1; 4 u_short port = 0; 5 int client_sock = -1; 6 struct sockaddr_

Socket实现简单Web服务器

上一篇博客中介绍了怎样使用socket访问web服务器.关键有两个: 1)熟悉Socket编程: 2)熟悉HTTP协议. 上一篇主要是通过socket来模拟浏览器向(任何)Web服务器发送(HTTP)请求,重点在浏览器端.本篇博客则反过来讲一下怎样使用socket来实现Web服务器,怎样去接收.分析.处理最后回复来自浏览器的HTTP请求. HTTP协议是浏览器和Web服务器都需要遵守的一种通信规范,如果我们编写一个程序,正确遵守了HTTP协议,那么理论上讲,这个程序可以具备浏览器.甚至Web服务