自己倒腾的一个小的HTTP小工具

        说是小工具,其实就是个简单的HTTP请求工具,通过url来获取网页源代码的,以前一直用httpclient的,后来无聊就自己用socket重新写了一个,实现了一些简单的额功能,暂时提供post和get方法,具有cookies记忆功能,支持常用的http1.0和1.1的协议。解码方式暂时只做了gzip的解码,可以自动识别网页字符格式,省去中文乱码的烦恼了。

        因为刚刚完成,基本来说还是有很多bug,把小成果发出来,欢迎拍砖啊,如果有对tcp和http或者socket比较感兴趣的哥们,可以私信我啊,大家一起交流交流。

        小组建见附件:

        使用示例如下所示:

 

	public static void main(String[] args) throws NumberFormatException, UnknownHostException, IOException, FPHttpException{
		// FPRequest是封装http的请求信息的
		FPRequest request = new FPRequest("http://news.qq.com");
		// FPHttpclient是HTTP具体请求和接收的对象
		FPHttpclient client = new FPHttpclient();
		// FPResponse是返回的结果集信息
		FPResponse response  = 	client.req(request); 
		// 打印HTTP源代码
		System.out.println(response.getStream());
	}

     运行一下就可以看到QQ新闻的页面结果了。

 

 

-------------------------------------------------------------------------------华丽的分割线----------------------------------------------------------------------------------

 

    后来有朋友问我,HTTP1.0和1.1的区别有哪些,我想了想,罗列了一些我日常工作当中接触到的,当然不是很全啊,大家可以补充。

    a: 1.0使用短连接,而1.1针对同一站点使用长连接,在我们程序当中有个地方接触的比较明显,http1.1大多使用Content-length和chunked方式去接收网页源代码,而1.0的时候我们更多的是读取到-1的时候认定网页接收完毕,-1其实也就是个一个连接结束标记。1.1当中也可以通过请求头/响应头当中设置存活时间。

    b: 1.1增加了许多http头,最明显的就是host,host属性可以解决最大的一个问题是,我们可以在一个ip下部署多个不同域名的网站。
    c:  1.0以前是一次只能处理一个web请求,而1.1一次可以并发的处理多个连接,不过这里 有个限制,一般情况下一个域名下最多只会同时建立两条连接进行并发处理。

    d: 1.1增加了身份验证机制。

    e: 1.1支持断点续传,有个range属性,用来告诉服务器本次是希望从指定位置开始接收文件。

 

   欢迎大家继续补充。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值