网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.发挥J2EE的优势,管理J2EE的世界.
.给一个数,返回比它小的最大质数.
.Java、XML与数据库编程实践(三).
.JAVA相关基础知识(2).
.Microsoft Visual Studio .NET 系.
.实体对象的抽象以及一种基于数据.
.一些面向对象的设计法则.
.关于一道操作符面试题的思考.
.用Java实现断点续传.
.JAVA与数据库连接方法(一).
.JBuilderX+SQL Server开发hibern.
.compile 方法.
.构建N840手机应用开发环境.
.JDBC基础.
.状态模式之星际应用.
.一个软件测试工程师的加班经历.
.使用JMX监控应用程序内、外部的状.
.以小博大 Java性能优化技巧集锦.
.再谈通过Java执行POST操作.
.J2SE综合:对java.util的总结 六.

用Socket类实现HTTP协议客户端应用

发表日期:2008-1-5


 


Http客户端程序已集成在Java语言中,可以通过URLConnection类调用。遗憾的是,由于SUN没有公布Http客户程序的源码,它实现的细节仍是一个谜。本文根据HTTP协议规范,用Java.net.Socket类实现一个HTTP协议客户端程序。
  1.Socket类:

  了解TCP/IP协议集通信的读者知道,协议间的通信是通过Socket完成的。在Java.net包中,Socket类就是对Socket的具体实现。它通过连接到主机后,返回一个I/O流,实现协议间的信息交换。

  2 . HTTP协议

  HTTP协议同其它TCP/IP协议集中的协议一样,是遵循客户/服务器模型工作的。客户端发往服务端的信息格式如下:

请求方法 URL HTTP协议的版本号
提交的元信息
**空行**
实体

  请求方法是对这次连接工作的说明,目前HTTP协议已经发展到1.1版,它包括GET、HEAD、POST、DELETE、OPTIONS、TRACE、PUT七种。元信息是关于当前请求的信息。通过分析元信息,可以检查实体数据是否完整,接收过程是否出错,类型是否匹配等。元信息的引入使HTTP协议通信更加稳妥可靠。实体是请求的具体内容。

  将上述报文发往Web服务器,假如成功,应答格式如下:

HTTP协议的版本号 应答状态码 应答状态码说明
接收的元信息
**空行**
实体

  以上报文发向客户端,并且接收成功,彼此间关闭连接,完成一次握手。下面用最常用的GET方法,来说明具体的报文应用:


GET http://www.youhost.com HTTP/1.0
accept: www/source; text/Html; image/gif; image/jpeg; */*
User_Agent: myAgent
**空行**

  这个报文是向www.youhost.com主机请求一个缺省HTML文档。客户端HTTP协议版本号是1.0版,元信息包括可接收的文件格式,用户代理,每一段之间用回车换行符分隔,最后以一个空行结束。发向服务器后,假如执行过程正常,服务器返回以下代码:

HTTP/1.1 200 OK
Date: Tue, 14 Sep 1999 02:19:57 GMT
Server: Apache/1.2.6
Connection: close
Content-Type: text/html
**空行**
<html><head>...</head><body>...

上一篇:一个Scocket实例程序 人气:666
下一篇:从socket中读取数据时使用超时 人气:1272
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐