实战WEB 服务器(JAVA编写WEB服务器)
一、超文本传输协议
1.1 HTTP请求
1.2 HTTP应答
二、Socket类
三、ServerSocket类
四、Web服务器实例
4.1 HttpServer类
4.2 Request类
4.3 Response类
五、编译和运行
===================
正文:
===================
Web服务器与客户端的通信使用HTTP协议(超文本传输协议),所以也叫做HTTP服务器。用Java构造Web服务器主要用二个类,java.net.Socket和java.net.ServerSocket,来实现HTTP通信。因此,本文首先要讨论的是HTTP协议和这两个类,在此基础上实现一个简单但完整的Web服务器。
一、超文本传输协议
Web服务器和浏览器通过HTTP协议在Internet上发送和接收消息。HTTP协议是一种请求-应答式的协议——客户端发送一个请求,服务器返回该请求的应答。HTTP协议使用可靠的TCP连接,默认端口是80。HTTP的第一个版本是HTTP/0.9,后来发展到了HTTP/1.0,现在最新的版本是HTTP/1.1。HTTP/1.1由 RFC 2616 定义(pdf格式)。
本文只简要介绍HTTP 1.1的相关知识,但应该足以让你理解Web服务器和浏览器发送的消息。如果你要了解更多的细节,请参考RFC 2616。
在HTTP中,客户端/服务器之间的会话总是由客户端通过建立连接和发送HTTP请求的方式初始化,服务器不会主动联系客户端或要求与客户端建立连接。浏览器和服务器都可以随时中断连接,例如,在浏览网页时你可以随时点击“停止”按钮中断当前的文件下载过程,关闭与Web服务器的HTTP连接。
1.1 HTTP请求
HTTP请求由三个部分构成,分别是:方法-URI-协议/版本,请求头,请求正文。下面是一个HTTP请求的例子:
GET /servlet/default.jsp HTTP/1.1
Accept: text/plain; text/html
Accept-Language: en-gb
Connection: Keep-Alive
Host: localhost
Referer: http://localhost/ch8/SendDetails.htm
User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)
Content-Length: 33
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
userName=JavaJava&userID=javaID
请求的第一行是“方法-URI-协议/版本”,其中GET就是请求方法,/servlet/default.jsp表示URI,HTTP/1.1是协议和协议的版本。根据HTTP标准,HTTP请求可以使用多种请求方法。例如,HTTP 1.1支持七
相关文档:
Java NIO类库Selector机制解析(上)
赵锟 陈皓
http://blog.csdn.net/haoel
一、 前言
自从J2SE 1.4版本以来,JDK发布了全新的I/O类库,简称NIO,其不但引入了全新的高效的I/O机制,同时,也引入了多路复用的异步模式。NIO的包中主要包含了这样几种抽象数据类型:
......
java计算时间差
文章分类:Java编程
比如:现在是2004-03-26 13:31:40
过去是:2004-01-02 11:30:24
我现在要获得两个日期差,差的形式为:XX天XX小时XX分XX秒
方法一:
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try
{
Date d1 = df.parse("2004-03-26 13:31:40");
......
public class OperatExcel
{
private File file = new File(ParamenterInit.SRCEXCELPATH);
private File outfile = new File(ParamenterInit.DESTEXCELPATH);
private static String sheetName = ParamenterInit.SHEETNAME;
  ......
今天经理让写一个,根据信息上传时间,显示,?分钟前,?小时前,?天前,类似qq空间发表的心情日期;
用了一个自我感觉笨的方法,不过还是实现了,呵呵呵
public static String getCompareTime(String filetime){
//返回的字符串
String retStr =""; ......
软件架构
作为一个概念,体现在技术
和业务
两
个方面。
从技术角度来说
:软件架构随着技术的革新不断地更新其内容,软件架构建立于当前技术
和一些基
本原则
的基础之上。
先说一些基本原则
:
分层原则
:分层是为了降低软件深度复杂性而使用的关键思想,就像社会有了阶级一样,软件有了层次结构。
模块化 ......