Java实现web服务器功能(简版)

2018年2月24日17:23:08 发表评论 8,935
摘要

本文讲述使用JAVA代码实现简单的web服务器功能,其中包括简单的http协议的讲解,以及报文头格式等知识的讲解,可让读者参考代码完成简单web服务器的开发。

Java实现web服务器功能(简版)

前言

这篇文章好久之前就想写了 ,但因为种种原因耽搁了很久,博客已长草。本文主要介绍使用Java语言来实现类似于Apache的web服务器功能,但博主敬礼有限,只完成了主要部分的功能,像配置文件啥的那就靠自己继续完善了,下面我就抛砖引玉。

预备知识

写这么个小功能我们需要的预备知识便是http协议的基本知识,在http协议中,我们发送的请求数据称之为请求报文,服务器返回的数据称之为响应报文。我们需要了解这两种报文的基本格式。

请求报文格式

Java实现web服务器功能(简版)

响应报文格式

Java实现web服务器功能(简版)

具体的说明回头写文章详细介绍,详情可参考文章:http报文详解-简书 

实现步骤

如果我们想使用Java实现的话,首先我们要弄清楚上面的请求报文和响应报文的格式。然后当用户对我们的服务器发送请求时,我们需要干的事请就是分析用户的求情报文,找到用户想要打开的网页进行展示,具体步骤如下:

1、服务在指定端口进行监听,等待请求。

2、当接收到请求后,建立连接,新建一个线程,准备分析报文。

3、分析请求报文,对用户请求的网页进行查找,并读取内容。

4、构造响应报文的内容。

5、将响应报文发送给请求方。

这里解释为什么要建立新的线程,因为在同一时刻可能会有多个用户对服务器进行请求,多个线程可同时对多个用户进行响应,如果单线程可能用户需要排队请求。

Java代码实现

下面是Java实现web服务器功能(简版)的代码:

具体的代码意思可能对java有些基础的人都能看明白,大神无视。

eclipse工程下载:

结束语

说实话,博主的Java功底比较烂,因为博主不倾向于写Java项目,就连本文的Java项目都是因为学了计算机网络才写的一个实验。代码功能比较简单,只实现了最基本的响应功能,提供给初学者进行学习,如果发现问题还请反馈给我。

文件下载

  • A+
所属分类:Java

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: