- 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 Socket现实简单的HTTP服务
Java Socket 现实简单的 HTTP 服务
一个简单的用 Java Socket 编写的 HTTP 服务器应用, 演示了请求和应答的协
议通信内容以及给客户端返回 HTML 文本和二进制数据文件(一个图片), 同时
展示了 404, 200 等状态码.
首先运行这个程序,然后打开 Web 浏览器,键入 http://localhost,则这个程序能
够显示出浏览器发送了那些信息并且向浏览器返回一个网页和一副图片, 并测试
同浏览器对话. 当浏览器看到 HTML 中带有图片地址时, 则会发出第二次连接
来请求图片等资源. 这个例子可以帮您理解 Java 的 HTTP 服务器软件是基于
J2SE 的 Socket 等软件编写的概念, 并熟悉 HTTP 协议. 相反的用 Telnet 连接
到已有的服务器则可以帮忙理解浏览器的运行过程和服务器端的返回内容.
当用户在 Web 浏览器地址栏中输入一个带有 http://前缀的 URL 并按下 Enter
后,或者在 Web 页面中某个以 http://开头的超链接上单击鼠标,HTTP 事务处理
的第一个阶段--建立连接阶段就开始了.HTTP 的默认端口是 80. 随着连接的建
立,HTTP 就进入了客户向服务器发送请求的阶段.客户向服务器发送的请求是一
个有特定格式的 ASCII 消息,其语法规则为:
Method URL HTTP Version \r\n
{ Header:Value \r\n}
\r\n
{ Entity Body }
请求消息的顶端是请求行,用于指定方法,URL HTTP 协议的版本,请求行的最
后是回车换行.方法 GET,POST,HEAD,PUT,DELETE 等. 在请求行之后是若干个
报头(Header)行.每个报头行都是由一个报头和一个取值构成的二元对,报头
取值之间以:分隔;报头行的最后是回车换行.常见的报头有 Accept(指定 MIME
媒体类型),Accept_Charset(响应消息的编码方式),Accept_Encoding(响应消息
的字符集),User_Agent(用户的浏览器信息)等. 在请求消息的报头行之后是一个
回车换行,表明请求消息的报头部分结束.在这个之后是请求消息的消息实体
(Entity Body).具体的例子参看 httpRequest.txt.
Web 服务器在收到客户请求并作出处理之后,要向客户发送应答消息.与请求消
息一样,应答消息的语法规则为:
HTTP Version Status Code [Message]\r\n
{ Header:Value \r\n }
\r\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 语言实现HTTP 服务器时,首先启动一个.ServerSocket 在提
供服务的端口上监听连接.向客户返回文本时,可以用 PrintWriter,但是如果返回
二进
您可能关注的文档
最近下载
- 传热学(全套714页课件课件).pptx VIP
- 统编版(2024)一年级下册语文4 小公鸡和小鸭子课件.pptx VIP
- 课-铜版纸彩印市场哲学数学原理完全配图手册缠中说禅.pdf VIP
- CQCIO_001—2019软件及信息化工程造价规范(V5.0) 2019 28页.pdf VIP
- 互联网技术全国通信专业技术人员职业水平考试大纲PPT.docx VIP
- (完整版)小学一年级语文教学经验交流.pptx VIP
- (完整版)小学一年级语文教学经验交流.pptx VIP
- 插画人物头像课件.pptx
- 20210820-申万宏源-申万行业分类标准2021版说明.pdf VIP
- 2025年最新全国通信专业技术人员职业水平考试试题和答案.docx VIP
文档评论(0)