Java URL自定义私有网络协议

URI (uniform resource identifier)统一资源标志符;
URL(uniform resource location )统一资源定位符(或统一资源定位器);
URI是一个相对来说更广泛的概念,URL是URI的一种,是URI命名机制的一个子集,可以说URI是抽象的,而具体要使用URL来定位资源。
URI指向的一般不是物理资源路径,而是整个系统中的映射后的资源标识符。
URL是Internet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。
一.先来序言一段

我们习惯了http

 URL url=new URL("http://www.apptest.com:8080/test/ios.php");

我们也要习惯

 "https", "ftp", "mailto", "telnet", "file", "ldap", "gopher",  "jdbc", "rmi", "jndi", "jar", "doc", "netdoc", "nfs", "verbatim", "finger", "daytime",
  "systemresource"

当然,我们还要让URL习惯我们

 URL url=new URL("oschina://www.apptest.com:8080/test/ios.php");

如果不习惯,总会出现如下异常

java.net.MalformedURLException: unknown protocol

在Android浏览器使用Ajax时也会不支持没有定义的过的协议。

二.协议的自定义的理解

协议:在编程的世界里,协议本身就是一套Input/ouput约束规则,因此,我们确切的协议应该围绕I/O展开的,所以,这里的协议可以称为I/O协议。

协议发起方:request

协议响应方:response

协议成立的条件是:request和reponse认可同一套协议,并按照协议约束进行通信。

三.自定义协议与URL的关系

在java中,自定义协议一定需要用URL吗?

答案是否定的。

 事实上,围绕I/O,我们的规则定义完全有我们本身掌握,并没有说离开URL地球不转了,Java要毁灭了。

为什么使用URL类来自定义协议?

答案是因为URL是一套成熟的协议通信处理框架。

这里说的自定义URL协议,实质上更多的是通过已有的规则进行扩充协议。

四.URL自定义私有协议实战

我们知道,自定义协议需要Response 和Request,双方需要充理解对方的协议。这里为了方便起见,我们使用Http协议服务器来作为Response。

这里我们使用了Ngnix服务器+PHP+FastCGI来构建Reponse,部署代码如下

1.定义Response

<?php

$raw_post_data = file_get_contents('php://input', 'r'); 
echo "-------\$_POST------------------\n<br/>"; 
echo var_dump($_POST) . "\n"; 
echo "-------php://input-------------\n<br/>
  • 18
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yx3x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值