资源描述:
《java(web服务器)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、简单的用JavaSocket编写的HTTP服务器应用,帮助学习HTTP协议-...(转载)上一篇/下一篇 2009-04-2714:35:57/个人分类:经典转载查看(39)/评论(0)/评分(0/0)/** * SimpleHttpServer.java */import java.io.*;import java.net.*;import java.util.StringTokenizer;/** * 一个简单的用 Java Socket 编写的 HTTP 服务器应用, 演示了请求和应答的协议通信内容以及 * 给客户端返回 HTML 文本和二进制数据文
2、件(一个图片), 同时展示了 404, 200 等状态码. * 首先运行这个程序,然后打开Web浏览器,键入http://localhost,则这个程序能够显示出浏览器发送了那些信息 * 并且向浏览器返回一个网页和一副图片, 并测试简单的用JavaSocket编写的HTTP服务器应用,帮助学习HTTP协议-...(转载)上一篇/下一篇 2009-04-2714:35:57/个人分类:经典转载查看(39)/评论(0)/评分(0/0)/** * SimpleHttpServer.java */import java.io.*;import java.net.*
3、;import java.util.StringTokenizer;/** * 一个简单的用 Java Socket 编写的 HTTP 服务器应用, 演示了请求和应答的协议通信内容以及 * 给客户端返回 HTML 文本和二进制数据文件(一个图片), 同时展示了 404, 200 等状态码. * 首先运行这个程序,然后打开Web浏览器,键入http://localhost,则这个程序能够显示出浏览器发送了那些信息 * 并且向浏览器返回一个网页和一副图片, 并测试同浏览器对话. * 当浏览器看到 HTML 中带有图片地址时, 则会发出第二次连接来请求图片等资源
4、. * 这个例子可以帮您理解 Java 的 HTTP 服务器软件是基于 J2SE 的 Socket 等软件编写的概念, 并熟悉 * HTTP 协议. * 相反的用 Telnet 连接到已有的服务器则可以帮忙理解浏览器的运行过程和服务器端的返回内容. * *
* 当用户在Web浏览器地址栏中输入一个带有http://前缀的URL并按下Enter后,或者在Web页面中某个以http://开头的超链接上单击鼠标,HTTP事务处理的第一个阶段--建立连接阶段就开始了.HTTP的默认端口是80. * 随着连接的建立,HTTP就进入了客户5、向服务器发送请求的阶段.客户向服务器发送的请求是一个有特定格式的ASCII消息,其语法规则为: * < Method > < URL > < HTTP Version > <> * { : <>}* * <> * { Entity Body } * 请求消息的顶端是请求行,用于指定方法,URL和HTTP协议的版本,请求行的最后是回车换行.方法有GET,POST,HEAD,PUT,DELETE等. * 在请求行之后是若干个报头(Header)行.每个报头行都是由一个报头和一个取值构成的二元对,报头和取值之间以"
6、:"分隔;报头行的最后是回车换行.常见的报头有Accept(指定MIME媒体类型),Accept_Charset(响应消息的编码方式),Accept_Encoding(响应消息的字符集),User_Agent(用户的浏览器信息)等. * 在请求消息的报头行之后是一个回车换行,表明请求消息的报头部分结束.在这个之后是请求消息的消息实体(Entity Body).具体的例子参看httpRequest.txt. * Web服务器在收到客户请求并作出处理之后,要向客户发送应答消息.与请求消息一样,应答消息的语法规则为: * < HTTP Vers
7、ion> []<> * { : <> } * * <> * { Entity Body } * 应答消息的第一行为状态行,其中包括了HTTP版本号,状态码和对状态码进行简短解释的消息;状态行的最后是回车换行.状态码由3位数字组成,有5类: * 参看:HTTP应答码及其意义 * * 1XX 保留 * 2XX 表示成功 * 3XX 表示URL已经被移走 * 4XX 表示客户错误 * 5XX 表示服务器错误 * 例如:415,表示不支持改媒体类型;503
8、,表示服务器不能访问.最常见的是200,表示成功.常见的报头有:L