简单的Http Server实现

思路:

      1.创建一个ServerSocket对象。

      2.调用ServerSocket对象的accept方法,等待连接,连接成功会返回一个socket对象,否则一直阻塞等待。

      3.从Socket对象中获取InputStream与OutputStream字节流,这两个流分别对应request请求与response响应。

      4.处理请求:读取InputStream字节流信息,转成字符串形式,并解析,这里的解析比较简单,仅仅获取URI信息。

      5.处理响应:根据解析出来的URI信息,从WEB-ROOT目录中寻找请求的资源文件,读取资源文件,并将其写入到OutputStream字节流中。

      6.关闭Socket对象。

      7.转到步骤2,继续等待连接请求。

时间: 2024-08-02 14:58:54

简单的Http Server实现的相关文章

Fiddler-009-AutoResponder 简单的 MOCK SERVER 应用实例

在我们日常的测试中经常需要测试特定的响应对应的客户端展示样式是否正确无误,实现测试方法一般有如下三种: 创建新的测试数据(工作量较大) 修改已有测试数据(例如修改对应的状态码,若是最终需要测试的按钮状态由 N 个状态共同决定时,修改起来比较繁琐,而且易出错) 创建 mock server(需要开发一个 mock 测试平台,一般测试人员无法完成,对无相关开发经验的测试攻城狮难度较高) 其实,测试抓包工具,已经给我们提供了相应的功能,通过其 [AutoResponder]即可实现简单的修改,尤其是修

写了一个简单的CGI Server

之前看过一些开源程序的源码,也略微知道些Apache的CGI处理程序架构,于是用了一周时间,用C写了一个简单的CGI Server,代码算上头文件,一共1200行左右,难度中等偏上,小伙伴可以仔细看看,对于学生来说,拿来当简历,含金量还是足够的.如果把程序里所涉及的HTTP协议,Linux下POSIX编程等等搞清楚,我想找工作中肯定是有足够的竞争力的,当然我也只是皮毛而已,不再班门弄斧了,下面简单的说下程序流程吧,方便小伙伴们阅读. 程序源代码:戳我 在说程序流程之前,我先简单说下CGI吧,CG

最简单删除SQL Server中所有数据的方法

原文:最简单删除SQL Server中所有数据的方法  最简单删除SQL Server中所有数据的方法 编写人:CC阿爸 2014-3-14 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入死循环,二是这里使用了微软未正式公开的sp_MSForEachTable存储过程. 也许很多读者朋友都经历过这样的事情:要在开发数据库基础上清理一个空库,但由于对数据库结构缺乏整体了解,在删除一个表的记录时,

简单搭建syslog-ng server记录log

### 简单搭建syslog-ng server记录log 安装syslog-ng apt-get install syslog-ng 安装syslog-ng 配置syslog-ng vim /etc/syslog-ng/syslog-ng.conf 配置可以参考如下: @version: 3.5 @include "scl.conf" @include "`scl-root`/system/tty10.conf" options { time-reap(30);

python socket 实现简单client与server

使用SocketServer创建一个网络服务程序,并且是多线程的,只需要几个简单的步骤: (1).创建处理request的类,创建方法为:继承BaseRequestHandler类,并重载handle()方法.该方法将被回调用做处理当前接收到的request. 注意:一般的做法是直接继承StreamRequestHandler或者DatagramRequestHandler.比如: class MyTCPHandler(SocketServer.StreamRequestHandler): (2

《Python Network Programming Cookbook》读书笔记1---套接字, IPv4, 简单的Client/Server程序

这一部分主要介绍python中socket模块的相关内容,socket即套接字. socket是使用TCP/IP协议的应用程序通常采用的应用编程接口,它位于运输层和应用层之间,起源于UNIX,由于遵从UNIX“一切皆文件的”思想故socket可看作一种特殊的文件,对其的操作基本可以视为读写I/O.打开.关闭.关于套接字的基本概念@吴秦的Linux Socket编程(不限Linux)写的很详细,大家可以参考. 在下面列出的各个部分中我将先贴出代码,然后对其进行解释. 通过python3获得本机名和

创建一个简单的 MDM server(1)

前提:已获得 APNS 证书 ,已完毕 MDM 配置描写叙述文件的制作.请參考< MDM 证书申请流程 >一文和<配置MDM Provisioning Profile>. 环境:OSX 10.9.2,JDK 1.6.Eclipse JavaEE Helois,Tomcat 7.0 一.前言 <THE IOS MDMPROTOCOL>(即Inside Apple MDM)一文中描写叙述了一个简单 MDM Server Python 实现(server.py). 笔者也曾參

socket编写简单回显server

socket在公司代码中应用比较广,比如接口调用的IPCRPC机制,经常看到这样的代码,但是一直也没有动手写过. 在某个比较大的进程中创建一个子进程,由于父子进程复制会浪费内存,可以将创建进程的命令通过socket发送到另一个轻量级的进程来创建. 在lighttpd和airplay的源码中,socket的框架是类似的. 下面参照lighttpd和airplay写个简单的回显server,以后有空再完善. server.c #include <stdio.h>#include <strin

一个简单的SSL Server和SSL Client来讲解Java环境下SSL的通信原理

首先我们先回顾一下常规的Java Socket编程.在Java下写一个Socket服务器和客户端的例子还是比较简单的.以下是服务端的代码: Java代码   package org.bluedash.tryssl; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Serve

如何用socket构建一个简单的Web Server

背景 现代社会网络应用随处可见,不管我们是在浏览网页.发送电子邮件还是在线游戏都离不开网络应用程序,网络编程正在变得越来越重要 目标 了解web server的核心思想,然后自己构建一个tiny web server,它可以为我们提供简单的静态网页 最终效果 完整的事例代码可以查看这里 如何运行 python3 index.py 注意 我们假设你已经学习过Python的系统IO.网络编程.Http协议,如果对此不熟悉,可以点击这里的Python教程进行学习,可以点击这里的Http协议进行学习,事