实战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的包中主要包含了这样几种抽象数据类型:
......
虽然经常创建多个不相同的线程来完成不相关的任务,然而有时执行的任务可能有一定联系,这样就需要使这些线程进行交互。比如有一个水塘,其中对水塘操作无非包括“进水”和“排水”,这两个行为各自代表一个线程,当水塘中没有水时,“排水”行为不能再进行� ......
今天经理让写一个,根据信息上传时间,显示,?分钟前,?小时前,?天前,类似qq空间发表的心情日期;
用了一个自我感觉笨的方法,不过还是实现了,呵呵呵
public static String getCompareTime(String filetime){
//返回的字符串
String retStr =""; ......
国际化(Internationalization,I18N):希望产品是广泛适用性
本地化(Localization,L10N):能够符合当地的习惯
应用程序国际化的目标:
编写在任何受支持的区域设置中都同样能正常运行(且外观表现本地化)的代码。
国际化中的Unicode编码
·国际化/本地化工作的焦点:
语言、数字格式、日期时间格式、货币 ......