- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java(web服务器)
简单的用 Java Socket 编写的 HTTP 服务器应用,帮助学习HTTP协议 - ...(转载)
上一篇 / 下一篇 ?2009-04-27 14:35:57 / 个人分类:经典转载
查看( 39 ) / 评论( 0 ) / 评分( 0 / 0 )
/**?*?SimpleHttpServer.java?*/import?java.io.*;import?.*;import?java.util.StringTokenizer;/**?*?一个简单的用?Java?Socket?编写的?HTTP?服务器应用,?演示了请求和应答的协议通信内容以及?*?给客户端返回?HTML?文本和二进制数据文件(一个图片),?同时展示了?404,?200?等状态码.?*?首先运行这个程序,然后打开Web浏览器,键入http://localhost,则这个程序能够显示出浏览器发送了那些信息?*?并且向浏览器返回一个网页和一副图片,?并测试同浏览器对话.?*?当浏览器看到?HTML?中带有图片地址时,?则会发出第二次连接来请求图片等资源.?*?这个例子可以帮您理解?Java?的?HTTP?服务器软件是基于?J2SE?的?Socket?等软件编写的概念,?并熟悉?*?HTTP?协议.?*?相反的用?Telnet?连接到已有的服务器则可以帮忙理解浏览器的运行过程和服务器端的返回内容.?*?*?pre?*???????当用户在Web浏览器地址栏中输入一个带有http://前缀的URL并按下Enter后,或者在Web页面中某个以http://开头的超链接上单击鼠标,HTTP事务处理的第一个阶段--建立连接阶段就开始了.HTTP的默认端口是80.?*????随着连接的建立,HTTP就进入了客户向服务器发送请求的阶段.客户向服务器发送的请求是一个有特定格式的ASCII消息,其语法规则为:?*??Method???URL???HTTP?Version??\n?*?{?Header:Value?\n}*?*?\n?*?{?Entity?Body?}?*????请求消息的顶端是请求行,用于指定方法,URL和HTTP协议的版本,请求行的最后是回车换行.方法有GET,POST,HEAD,PUT,DELETE等.?*?在请求行之后是若干个报头(Header)行.每个报头行都是由一个报头和一个取值构成的二元对,报头和取值之间以:分隔;报头行的最后是回车换行.常见的报头有Accept(指定MIME媒体类型),Accept_Charset(响应消息的编码方式),Accept_Encoding(响应消息的字符集),User_Agent(用户的浏览器信息)等.?*????在请求消息的报头行之后是一个回车换行,表明请求消息的报头部分结束.在这个\n之后是请求消息的消息实体(Entity?Body).具体的例子参看httpRequest.txt.?*?????Web服务器在收到客户请求并作出处理之后,要向客户发送应答消息.与请求消息一样,应答消息的语法规则为:?*??HTTP?Version?Status?Code?[Message]\n?*?{?Header:Value?\n?}?*?*?\n?*?{?Entity?Body?}?*????应答消息的第一行为状态行,其中包括了HTTP版本号,状态码和对状态码进行简短解释的消息;状态行的最后是回车换行.状态码由3位数字组成,有5类:??*?参看:HTTP应答码及其意义??*??*?1XX?保留??*?2XX?表示成功??*?3XX?表示URL已经被移走??*?4XX?表示客户错误??*?5XX?表示服务器错误??*?例如:415,表示不支持改媒体类型;503,表示服务器不能访问.最常见的是200,表示成功.常见的报头有:Last_Modified(最后修改时间),Content_Type(消息内容的MIME类型),Content_Length(内容长度)等.?*????在报头行之后也是一个回车换行,用以表示应答消息的报头部分的结束,以及应答消息实体的开始.?*????下面是一个应答消息的例子:?*?HTTP/1.0?200?OK?*?Date:?Moday,07-Apr-97?21:13:02?GMT?*?Server:NCSA/1.1?*?MIME_Version:1.0?*?Content_Type:text/html?*?Last_Modified:Thu?Dec?5?09:28:01?1996?*?Coentent_Length:3107?*??*?HTMLHEADTITLE/HTML?*??*?在用Java语言实
您可能关注的文档
- AP200ap300使用说明2003.doc
- Alzheimer’s Disease Prevention Initiative.ppt
- apache2的worker工作模式配置及MaxClients不足问题解决.doc
- AralditeAW2104-HW2934,金钱胶,爱牢达AB胶.pdf
- ARDEX STS8 超强抗张力瓷砖粘结剂施工工艺及安全施工措施.doc
- ARP请求详解.doc
- ARTIS-3维护保养规程.doc
- AS-MF09 灭火机器人套件安装指南V1.0.pdf
- ASIC对二三层处理理和三层数据流过程.pdf
- Alzheimer’s Disease Genetics Pathogenesis Models and Experimental Therapeutics.ppt
最近下载
- 生物安全实验室乙型肝炎病毒实验活动风险评估报告.docx VIP
- 2025年全国中考历史真题分类汇编.docx VIP
- 托福写作172句型.doc VIP
- 三级助听器验配师理论知识考核试题及答案.pdf VIP
- Unit 7 Happy Birthday第1 Lead-in Cartoon time三年级英语上册练习(译林版三起).pdf VIP
- 昌平区电力工程施工组织设计.doc VIP
- 2025年新人教版数学二年级上册全册课件.pptx
- T∕CCMA 0075-2019 -装载机载荷谱试验方法.pdf VIP
- 针灸入门广州中医药学PPT.ppt VIP
- 学堂在线 如何写好科研论文 章节测试答案.docx VIP
文档评论(0)