热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

url+用户名+密码_URI和URL详解

1.URI---用于标示一个抽象或者物理资源URI定义URI,通一资源标志符(UniversalResourceIdentifier,URI)ÿ
67044b3b53cde6d64333b43bd5bf3381.png

1.URI---用于标示一个抽象或者物理资源

URI定义

URI,通一资源标志符(Universal Resource Identifier, URI),就是由某个协议方案表示的资源的定位标识符,协议方案指的是访问资源所用的协议类型名称。它表示的是web上每一种可用的资源,如 HTML文档、图像、视频片段、程序等都由一个URI进行定位的。

采用HTTP协议时,协议方案就是http。除此之外,还有ftp、mailto、telnet、file等。标准的URI协议有30种左右。

URI结构组成

  • ①访问资源的命名机制;
  • ②存放资源的主机名;
  • ③资源自身的名称,由路径表示。

URI格式

表示指定的URI,要使用涵盖全部必要信息的绝对URI、绝对URL以及相对URL。相对URL,是指从浏览器中基本的URI处指定的URL。 我们看一下绝对的URI格式。

d884b6f75c49d34a77234e764a85d666.png

使用http:或https:等协议方案名获取访问资源时要指定协议类型,不区分字母大小,最后附一个冒号。 也可使用data:或Javascript:这类指定数据或脚本程序的方案名。

字段介绍

(1)登录信息(认证)

指定用户名或密码作为从服务器端获取资源时必要的登录信息,是可选的。

(2)服务器地址

使用绝对的URI必须有需要访问的服务器地址,地址可以是解析的、点分十进制(IPV4)或者是方括号阔起来的IPV6地址名。

(3)服务器端口号

指定服务器连接的网络端口号。是可选的,若用户省略则自动使用默认端口号。

(4)带层次的文件路径

指定服务器上的文件路径来定位指定的资源。

(5)查询字符串

针对已指定的文件路径内的资源,可以使用查询字符串传入任意参数,此项可选。

(6)片段标识符

可以标记出已获取资源中的子资源。是可选项。

URI实例

https://blog.csdn.net/qq_1121028827/article/details/79516787

解释:这是一个可以通过https协议访问的资源,位于主机 blog.csdn.net上,通过路径“/qq_1121028827/article/details/79516787”访问。

android官方定义方式:

bb474c48a6505a290190a26d421fa67d.png

2.URL--用于标示网络资源的位置

URL定义

URL是URI的一个子集。它是Uniform Resource Locator的缩写,译为“统一资源定位符”。通俗地说,URL是Internet上描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。

URL语法(组成)

protocol :// hostname[:port] / path / [;parameters][?query]#fragment

  • ①第一部分是协议(或称为服务方式),用“://”符号隔开【1和2部分,不可省略】。
  • ②第二部分是存有该资源的主机IP地址(有时也包括端口号),用“/”符号隔开【2和3部分,可省略】。
  • ③第三部分是主机资源的具体地址,如目录和文件名等。

具体组成如下:

URL提供了一种访问定位因特网上任意资源的手段,但是这些资源可以通过不同的方法(例如HTTP、FTP、SMTP)来访问,不管怎样,他都基本上由9个部分构成:

://:@:/;?#

  1. scheme:获取资源使用的协议,例如http、ftp等,没有默认值
  2. user:password:用户名与密码,这个是一个特殊的存在,一般访问ftp时会用到,他显示的表明了访问资源的用户名与密码。但是这个可以不写,不写的话可能会让你输入用户名密码
  3. host:主机,访问那台主机,有时候可以是IP,有时候是主机名,例如www.baidu.com
  4. port:端口,访问主机时的端口,如果http访问默认80,可以省略。
  5. path:通过host:port我们能找到主机,但是主机上文件很多,通过path则可以定位具体文件。例如www.baidu.com/file/index.html。则path是/file/index.html,表示我们访问/file/index.html这个文件,他很像linux上的路径。
  6. params:这个很少见,主要作用就是像服务器提供额外的参数,用来表示本次请求的一些特性。例如ftp传输模式有两种,二进制和文本,你肯定不希望使用文本形式传输二进制图片,这样你的图片下载下来后可能没法看了。为了向应用程序提供更丰富的信息,URL中有个专门的部分来表示这种参数。例如ftp://file.qiandu.com/pub/guid.pdf;type=d其中的type=d就是params
  7. query:通过get方式请求的参数,例如:www.qiandu.com/index.html?username=dgh&passwd=123
  8. fragment:例如www.qiandu.com/index.html#1。当html页面比较长时,我们通常会将其分为好几段,#1就可以 快速定位到某一段。

URL实例

https://mp.toutiao.com/profile_v3/graphic/publishhttps://www.qiandu.com:8080/goods/index.html?username=dgh&passwd=123#j2sefile://ftp.linkwan.com/pub/files/foobar.txt http://homepage.yesky.com/175/2603675.shtml

android官方定义方式:

868ec8d647da71bcc52e67909348e5ca.png

3.URI和URL的区别和联系

URI用字符串标识某一互联网资源,而URL表示资源的地点,即互联网上所处的位置。所以,URL是URI的子集。

276d79d17861821b053b682a04d5c94f.png

HTTP协议格式-实例

1.请求

POST /index.html HTTP/1.1HOST: www.XXX.com User-Agent:Mozilla/5.0(Windows NT 6.1;rv:15.0) Firefox/15.0Username=admin&password=admin

9e6e3e6923694a6c27fe47c9c0e34389.png

起始行开头的POST表示请求访问服务器的类型,称为方法。随后的/index.html指明了请求访问的资源对象,也叫做请求URI。最后的HTTP/1.1,是HTTP的版本号,用来提示客户端使用的HTTP协议功能。这段请求的内容的意思是:请求访问某台HTTP服务器上的/index.html页面资源。请求报文是由请求方法、请求URL、协议版本、可选的请求首部字段和内容实体构成的。

2.响应

HTTP/1.1 200 OKContent-Encoding: gzip Content-Type: text/html;charset=utf-8Document

this is http response

a26a2dfc8fde58e741d30daf02f86b49.png

起始行开头的HTTP/1.1表示服务器对应的HTTP版本。200 OK表示请求的处理结果的状态码和原因短语。响应报文后以一空行分隔,之后的内容是资源实体的主体。

响应报文基本上是由版本协议、状态码、用以解释状态码的原因短语、可选的响应首部字段以及实体主题构成。

告知服务器意图的HTTP方法

d15441cec4e193356e1e741b7640356a.png

HTTP响应码

e0e15f58d9f498c21f2b902c39665394.png

HTTP报文首部

HTTP请求报文

e4d53abb2121e237069046d8366cbeab.png

HTTP响应报文

07bbe5408a7f7af898eeb826dd388f4b.png

1.HTTP首部信息

HTTP首部字段包括客户端和服务器分别处理请求和响应提供所需要的信息,包括报文主体大小、所使用的的语言、认证信息等。对于客户端用户来说,这些信息中的大部分内容都无须亲自查看。

2.HTTP首部字段结构

HTTP首部字段是由首部字段名和字段值构成的。

首部字段名: 字段值

3.HTTP首部字段类型

HTTP首部字段分为4种类型。

通用首部字段

请求报文和响应报文都会用到的首部。

请求首部字段

从客户端向服务器发送请求报文时使用的首部。补充了请求的附加内容、客户端信息、响应内容和相关优先级等信息。

响应首部字段

从服务器向客户端返回响应报文使用的首部。补充了响应的附加内容,也会要求客户端附加额外的内容信息。

实体首部字段

针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的信息。

HTTP/1.1规范定义了47种首部字段。 下面介绍几个常见的首部字段。

06ce07314e69e246cd3b0b52abefcfb2.png

HTTP短链接:

一次请求,一次响应,双方响应一来一回。通常服务器关闭响应。例如:对讲机。

HTTP长链接:

一次性建立连接,然后进行通信。例:打电话的过程。

Java中对URI的操作类

@Testpublic void uriTest() throws Exception{ URI uri = new URI("https://www.qiandu.com:8080/goods/index.html?username=dgh&passwd=123#j2se"); System.out.println("scheme : " + uri.getScheme()); System.out.println("SchemeSpecificPart : " + uri.getSchemeSpecificPart()); System.out.println("Authority : " + uri.getAuthority()); System.out.println("host : " + uri.getHost()); System.out.println("port : " + uri.getPort()); System.out.println("path : " + uri.getPath()); System.out.println("query : " + uri.getQuery()); System.out.println("fragment : " + uri.getFragment());}

运行上面的代码,然后得到如下的结果:

6f4314ddf1f7203a83123a0066708aa1.gif

Java中对URL的操作

@Testpublic void urlTest() throws Exception{URL url = new URL("https://www.qiandu.com:8080/goods/index.html?username=dgh&passwd=123#j2se"); System.out.println("URL: " + url.toString()); System.out.println("protocol: " + url.getProtocol()); System.out.println("authority: " + url.getAuthority()); System.out.println("file name: " + url.getFile()); System.out.println("host: " + url.getHost()); System.out.println("path: " + url.getPath()); System.out.println("port: " + url.getPort()); System.out.println("default port:" + url.getDefaultPort()); System.out.println("query: " + url.getQuery()); System.out.println("ref: " + url.getRef());}

运行上面的代码,得到以下结果:

9569136303a6443666b95c3b6e97cdfc.gif

UserInfo属性

其实关于资源定位的时候还有一种写法,就是类似于

sftp://tomcat@www.qiandu.com///app/index.pdf

就是在主机名前面有类似于xxx@的东西,其实这种表示就:用户@主机名或者用户@IP。@前面表示登录主机的用户,也就是UserInfo了。

088a5bbc4c06c5538ba6849dc23f216e.gif


推荐阅读
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
author-avatar
沫沫
微交易http://www.ikkwt.com/ 微交易平台http://www.ikkwt.com/pingtai/ 网络借贷平台大全http://www.kljie.com/ 小微金融http://www.lcbcn.com/ 微投资平台http://www.lcbcn.com/pt/ 网络借贷平台排行榜http://www.kljie.com/pingtai/
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有