仓酷云

标题: 发布一篇用Socket类完成HTTP协定客户端使用 [打印本页]

作者: 爱飞    时间: 2015-1-18 11:26
标题: 发布一篇用Socket类完成HTTP协定客户端使用
主要缺点就是:速度比较慢,没有C和C++快
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协定会合的协定一样,是遵守客户/服务器模子事情的。客户端发往服务真个信息格局以下:
哀求办法URLHTTP协定的版本号
提交的元信息
**空行**
实体
哀求办法是对此次毗连事情的申明,今朝HTTP协定已开展到1.1版,它包含GET、HEAD、POST、DELETE、OPTIONS、TRACE、PUT七种。元信息是关于以后哀求的信息。经由过程剖析元信息,能够反省实体数据是不是完全,吸收历程是不是堕落,范例是不是婚配等。元信息的引进使HTTP协定通讯加倍稳妥牢靠。实体是哀求的详细内容。
将上述报文发往Web服务器,假如乐成,应对格局以下:
HTTP协定的版本号应对形态码应对形态码申明
吸收的元信息
**空行**
实体
以上报文发向客户端,而且吸收乐成,相互间封闭毗连,完成一次握手。上面用最经常使用的GET办法,来讲明详细的报文使用:
GEThttp://www.youhost.comHTTP/1.0
accept:www/source;text/html;image/gif;image/jpeg;*/*
User_Agent:myAgent
**空行**
这个报文是向www.youhost.com主机哀求一个缺省HTML文档。客户端HTTP协定版本号是1.0版,元信息包含可吸收的文件格局,用户代办署理,每段之间用回车换行符分开,最初以一个空行停止。发向服务器后,假如实行历程一般,服务器前往以下代码:
HTTP/1.1200OK
Date:Tue,14Sep199902:19:57GMT
Server:Apache/1.2.6
Connection:close
Content-Type:text/html
**空行**
<html><head>...</head><body>...</body></html>
HTTP/1.1暗示这个HTTP服务器是1.1版,200是服务器对客户哀求的应对形态码,OK是对应对形态码的注释,以后是这个文档的元信息和文档注释。(相干应对形态码和元信息的注释请参阅Inetrnet尺度草案:RFC2616)。
<p>
轮性能微软曾做过一个例子,就是同一个项目用java和.net网页编程来作,结果开发周期,.net网页编程是java的一半,性能java是.net网页编程的十分之一,代码量java是.net网页编程的三倍。呵呵,这说明了什么,.net网页编程的全方位比java好。但是有的人说.net网页编程不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net网页编程很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net网页编程,只是推出了跨语言的.net网页编程,
作者: 海妖    时间: 2015-1-21 06:54
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
作者: 活着的死人    时间: 2015-1-27 06:45
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
作者: 小女巫    时间: 2015-2-5 00:57
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者: 仓酷云    时间: 2015-2-7 11:22
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
作者: 愤怒的大鸟    时间: 2015-2-21 19:30
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
作者: 透明    时间: 2015-3-6 21:05
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
作者: 分手快乐    时间: 2015-3-9 10:01
Java是一种计算机编程语言,拥有跨平台、面向对java
作者: 小妖女    时间: 2015-3-11 10:02
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
作者: 只想知道    时间: 2015-3-12 14:19
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
作者: 因胸联盟    时间: 2015-3-19 22:28
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
作者: 若天明    时间: 2015-4-2 22:55
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2