读书笔记:
URL URI 区分:
URL (uniform resource localtor)统一资源定位符,URI(uniform resource identifier)统一资源标识符。
URI 是个纯粹的语法结构,用于指定标识web资源的字符串的各个不同部分,URL 是URI的一个特例,它包含定位web资源的足够信息。其它URI 比如:
mailto:cay@horestmann.com
这个不属于定位符,因为根据它我们无法定位任何数据,像这样的URI我们称之为URN 统一资源名称。
在java类库中,URI不包含任何用于访问资源的方法,它唯一的作用就是解析。相反,URL类可以打开一个到达资源的流,因此URL类只能作用于那些java类库知道
该如何处理的模式,例如http: https ftp 本地文件系统, jar文件。
uri规范给出了标识这些标识符的规则,一个uri具有以下的语法:
【scheme:】schemeSpecificPart[#fragment]
schemeSpecificPart具有以下结构:
[//authority][path][?query]
对于那些基于服务器的 URI authority 部分采用了以下的形式:
【user-info@】host[:port]
当然 RFC 2396 还支持一种基于注册表的机制,此时authority采用了不同的格式,不过不做讨论。
uri是分层的。
包含scheme:部分的uri被称为绝对的URI 否则就被称为相对的URI。
如果绝对的URI的schemeSpecificPart不是以/开头的,我们就称它不是透明的。例如:
mailto:cay@horstmann.com 这里cay@....不是以/开头的所以我们称它是不透明的。
uri类的作用之一就是解析标识符并将它分解成各种不同的组成部分。
getScheme
getSchemeSpecificPart
getAuthority
getuserInfo
getHost
getPort
getPath
getQuery
getFragment
uri类的另一个作用是处理绝对的标识符和相对的标识符。如果存在一个如下的绝对的uri
http://docs.mycompany.com/apo/java/net/serversocket.html
和一个相对的uri
../.../java/net/socket.html#Socket()
那么可以将他们合成一个绝对的uri:
http://docs.mycompany.com/apo/java/net/serversocket.html#socket()
被称为相对URL的转换。
与此相反的过程称为相对化。
反过来就是相对化。
relative=base.relativize(combined)
combined=base.resolve(relative)
如果想从web资源获得更多的信息,那么应该使用URLConnection 能得到比url类更多的控制。
想操作一个URLConnection对象必须安排以下操作步骤:
1。调用URL类中的openConnection方法获得URLConnection对象。
URLConnection connection=url.openConnection();
2.使用以下的方法设置任意的请求属性:
setDoinput();
setDoOutput
setIfModifiedSince
setUseCaches
setAllowUserInteraction
setRequestProperty
setConnecttimeout
setReadTimeout
3.调用connect方法连接远程资源:
connection.connect();
除了与服务器建立套接字连接以外,该方法还可用于向服务器查询头信息。
4。与服务器建立连接后,你可以查询头信息。
getHeaderfieldKey和getHeaderfield两个方法列巨额了消息头的所有字段
5。最后访问资源 使用getInputStream方法获得一个输入流于url类中的openStream方法返回的流相同,另一个方法getContent在实际的操作中并不是很有用。
由标准内容类型:(如:text/plain和image/gif)所返回的对象需要使用com.sun层次结构中的类进行处理。
分享到:
相关推荐
### URI与URL的基础概念 #### 一、URI(Uniform Resource Identifier):统一资源标识符 在互联网技术领域中,URI是用于唯一标识一个资源的一种标准形式。它是一种抽象的概念,用以指代任何类型的资源,无论是实体...
在富文本编辑器中,我们经常需要处理超链接(URL),使其具有下划线并实现点击后自动在浏览器中打开的功能。这个功能在现代应用程序中非常常见,比如邮件客户端、文本编辑器或在线聊天应用。 要在Delphi的RichEdit...
Boost.URL库是C++编程语言中的一个开源工具,专门设计用于处理和操作统一资源标识符(URI)和统一资源定位器(URL)。这个库提供了一套全面且强大的API,允许开发者高效、安全地进行URL解析、构建、修改以及验证等...
在探讨“URI和URL区别”这一主题时,我们首先需要明确这两个概念的基本定义与功能,进而深入理解它们之间的差异以及在互联网技术中的具体应用。URI(Uniform Resource Identifier,统一资源标识符)和URL(Uniform ...
一、URI、URL和URN 二、URI和URL的区别及关系 简而言之,URI是标识某一个资源,而URL用位置来标识一个资源。 一、URI、URL和URN Web上地址的基本形式是URI,它有多种形式:常见的有URL和URN。 URI = Universal ...
1. `insert(Uri url, ContentValues values)`:此方法用于向ContentProvider指定的表中插入新数据。URL代表要插入数据的表的URI,而`ContentValues`对象包含了要插入的键值对。 2. `delete(Uri url, String where, ...
- **链接生成**:在构建动态网站时,Uri库可以轻松地生成带参数的链接,简化URL管理。 - **API设计**:在RESTful API设计中,正确处理和验证URI是至关重要的,Uri库为此提供了便利。 - **数据交换**:当应用程序...
* insert(Uri url, ContentValues values):插入一条新的记录到指定的 URI 中。 * delete(Uri url, String where, String[] selectionArgs):删除指定的记录。 * query(Uri uri, String[] projection, String ...
对比两个url是否一致,对比两个URL是否一致,包括端口,方法等,非常好用
public static final Bitmap getBitmap(ContentResolver cr, Uri url) throws FileNotFoundException, IOException { InputStream input = cr.openInputStream(url); Bitmap bitmap = BitmapFactory....
URI、URL和URN之间的关系是:URI是顶层概念,包括了URL和URN。URL是URI的一种具体形式,用于提供资源的访问途径,而URN则提供了一个永久性的名字,即使资源的物理位置改变,依然可以通过URN找到资源。 在Java中,...
URI(Uniform Resource Identifier)和URL(Uniform Resource Locator)是互联网上资源定位的两种重要概念。它们虽然在功能上有所重叠,但有着明确的区别。 首先,URI,统一资源标志符,是一个抽象的概念,用于唯一...
URI 不仅包括了 URL(Uniform Resource Locator,统一资源定位符),还包含了 URN(Uniform Resource Name,统一资源名称)。URL 是 URI 的一个子集,它提供了资源的具体位置,可以用来获取资源。URL 的结构通常包含...
有两种形式: URL:目前URI的最普遍形式就是无处不在的URL或统一资源定位器。 URN:URL的一种更新形式,统一资源名称(URN, Uniform Resource Name)不依赖于位置,并且有可能减少失效连接的个数。但是其流行还需...
例如,使用`Uri.withAppendedPath()`添加路径,使用`Uri.encode()`和`Uri.decode()`进行URL编码解码。 7. **文件Uri与安全问题**: 文件Uri通常以`file:`开头,直接访问可能导致安全问题,例如文件权限泄露。因此...
System.Uri类也提供了这些功能,如`Uri.EscapeDataString()`和`Uri.UnescapeDataString()`方法用于URL编码和解码,以及`Uri.IsLoopback`、`Uri.HostNameType`等属性用于判断URL的特性。 总的来说,通过System.Uri类...
private bool IsPotential404Url(Uri url) { // 实现一个方法来判断URL是否可能导致404错误 // 这通常涉及检查URL的结构或查询服务器的响应 } ``` 此外,如果你的应用程序需要处理多种类型的HTTP错误,可以使用`...
`uriparser` 是一个开源的URI(统一资源标识符)解析库,广泛应用于软件开发,尤其是网络爬虫...同时,由于`uriparser`遵循了标准,所以它在处理不同格式和结构的URL时表现得更加可靠,减少了因URL解析问题引发的错误。