HTTP基本原理

  1. URI
    URI = Universal Resource Identifier 统一资源标志符

    URI采用一种特定语法标识一个资源的字符串。所标识的资源可能是服务器上的一个文件。不过,也可能是一个邮件地址、新闻消息、图书、人名、Internet主机或者任何其它内容。

    通过URI找到资源是通过对名称进行标识,这个名称在某命名空间中,并不代表网络地址。

    它包含URL和URN。
    支持的协议有http、https、ftp、mailto、magnet、telnet、data、file、nfs、gopher、ldap等

  2. URL
    URL = Universal Resource Locator 统一资源定位符

    URL唯一地标识一个资源在Internet上的位置。不管用什么方法表示,只要能定位一个资源,就叫URL。

    示例:

http://www.jianshu.com/u/1f0067e24ff8
ftp://www.example.com/resource.txt

  1. URN
    URN = Universal Resource Name 统一资源名称

    URN它命名资源但不指定如何定位资源,比如:只告诉你一个人的姓名,不告诉你这个人在哪。例如:telnet、mailto、news 和 isbn URI 等都是URN。

    比如 urn:issn:1535-3613 则不属于URL(统一资源定位符),因为根据该标识符无法定位任何到资源。

    示例:

urn:issn:1535-3613 (国际标准期刊编号)
urn:isbn:9787115318893 (国际标准图书编号)
mailto:jijs@jianshu.com (简单邮件传输协议)
tel:+1-81-555-1212

URI、URL和URN区别:

  1. URI 指的是一个资源

  2. URL 用地址定位一个资源;

  3. URN 用名称定位一个资源。

    举个例子:
    去寻找一个具体的人(URI);如果用地址:XX省XX市XX区…XX单元XX室的主人 就是URL;如果用身份证号+名字去找就是URN(身份证号+名字 无法确认资源的地址) 。

在互联网中,URN使用的非常少,几乎所有的URI都是URL,所以对一般的网络链接,我们既可以称之为URL,也可以称之为URI,我个人习惯称URL。

但是URL也不是谁便写的,他也是要遵循一定的格式规范的,基本的组成格式如下:

scheme:// [username:password@] hostname [:port] [/path] [;parameters] [?query] [#fragment]

其中括号包括的内容代表非必要部分,比如 https://www.baidu.com 这个URL,这里就只包括了scheme和hostname两部分,没有port、path、parameters、query、fragment。这里我们分别介绍一下几部分代表的含义和作用。

  • scheme:协议。常用的协议有http、https、ftp 等,另外scheme也被常称作protocol,二者都代表协议的意思。
  • username:password:用户名和密码。在某些情况下URL需要提供用户名和密码才可以访问,这时候可以把用户名和密码放在host前面。比如https://ssr3.scrape.centr这个URL需要用户名和密码才可以访问,直接写为https://admin:admin@ssr3.scrape.center则可以直接访问。
  • hostname:主机地址。可以是域名或IP地址,比如https://www.baid.com这个URL中的hostname就是www.baidu.com,这就是百度的二级域名。比如https://8.8.8.8这个URL中的hostname就是8.8.8.8,他是一个IP地址。
  • port:端口。这是服务器设定的服务端口,比如https://8.8.8.8:12345这个URL中的端口就是12345.但是有一些URL中没有端口信息,这是使用了默认的端口。http协议的默认端口是80,https协议的默认端口是443。所以 https://www.baidu.com 其实是相当于https://www.baidu.com:443,而http://www.baidu.com其实相当于http://www.baidu.com:80。
  • path:路径。指的是网络资源在服务器中的指定地址,比如https://github.com/favicon.ico中的path就是favicon.ico,指的是访问GitHub路径下的favicon.ico。
  • parameters:参数。用来指定访问某个资源时的附加信息,比如https://8.8.8.8:12345;user中的user就是parameters。但是parameters现在用的很少,所以目前很多人会把参数后面的query部分称为参数,甚至把parameters和query混用。严格意义上来说,parameters是分号(;)后面的内容。
  • query:查询。用来查询某类资源,如果有多个查询,则用&隔开。query其实非常常见,比如https://www.baid.com/s?wd=nba&ie=utf-8,其中的query部分就是wd=nba&ie=utf-8,这里指定了wd是nba,ie是utf-8.由于query比刚才说的parameters使用的频率高很多,所以平时我们见到的参数、GET请求参数、parameters、params等称呼多数情况指代的也是query。
  • fragment:片段。他是对资源描述的部分补充,可以理解为资源内部的书签。目前他有两个重要的应用,一个是用作单页面路由,比如现代前端框架Vue、React都可以借助它来做路由管理;另一个是用作HTML锚点,它可以控制一个页面打开时自动下滑滚动到某个特定的位置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/47000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

京东Android一面凉经(2024)

京东Android一面凉经(2024) 笔者作为一名双非二本毕业7年老Android, 最近面试了不少公司, 目前已告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是《京东Android一面凉经(2024)》。 面试职位: Android开发工程师 技术一面 面试时长: 50…

如何解决隐藏游戏服务器的源IP问题

在网络游戏领域,保护服务器的源IP地址不被轻易发现是一项重要的安全措施。游戏服务器的源IP一旦暴露,可能会遭受DDoS攻击、扫描和各种形式的安全威胁。然而,对于合法的游戏运营商而言,有时需要对服务器进行维护或调试,…

2个方法快速解决word文档编辑限制

Word文档不能编辑的情况想必有很多的朋友都有碰到过吧,通常Word文档不能编辑主要是由于Word文档被加密或者Word文档被锁住导致,下面小编给大家整理了一些相关的解决方法,希望对大家有所帮助。 一、取消word文档限制保护 我们可以在文档里点击…

外卖系统定制开发:技术选型与架构设计要点

随着外卖行业的迅速发展,餐饮企业需要一个高效、稳定、可扩展的外卖系统来满足日益增长的用户需求。本文将探讨外卖系统定制开发的技术选型与架构设计要点,并提供一些示例代码来说明关键技术的实现。 一、技术选型 1. 前端技术选型 外卖系统的前端需要…

oracle adg切换

作者:广大 1 主库转备库 注意:原则上至多只能有一个主库,但是备库可以多个,所以需要先进行主库转备库操作。 1.1 查看主库角色切换状态 SYSproe>select name,database_role,switchover_status from v$database;NAME …

【node-RED 4.0.2】连接操作 Oracle 数据库实现 增 删 改 查【新版,使用新插件:@hylink/node-red-oracle】

总览 上节课,我们说到,在 node-red 上链接 oracle 数据库 我们使用的插件是 node-red-contrib-agur-connector。 其实后来我发现,有一个插件更简便,并且也更好用:hylink/node-red-oracle !!&am…

vue3 学习笔记11 -- 模板语法和指令

vue3 学习笔记11 – 模板语法和指令 模板语法 文本插值&#xff1a;使用双大括号 {{ }} 插入文本。 <script setup>const message ref("Hello Vue3!!") </script> <template><p>{{message}}</p> </template>指令 以 v- 开头…

Golang | Leetcode Golang题解之第240题搜索二维矩阵II

题目&#xff1a; 题解&#xff1a; func searchMatrix(matrix [][]int, target int) bool {m, n : len(matrix), len(matrix[0])x, y : 0, n-1for x < m && y > 0 {if matrix[x][y] target {return true}if matrix[x][y] > target {y--} else {x}}return f…

智能听诊器:宠物健康监测的革新者

宠物健康护理领域迎来了一项激动人心的技术革新——智能听诊器。这款创新设备以其卓越的精确度和用户友好的操作&#xff0c;为宠物主人提供了一种全新的健康监测方法。 使用智能听诊器时&#xff0c;只需将其放置在宠物身上&#xff0c;它便能立即捕捉到宠物胸腔的微小振动。…

linux安装keepalived教程

1.安装依赖包 yum install -y curl gcc openssl-devel libnl3-devel net-snmp-devel2.安装keepalived yum install -y keepalived3.更新配置 # 配置文件地址&#xff1a;/etc/keepalived/keepalived.conf # 1.主节点 vrrp_instance VI_1 {state MASTER # 状态只有MASTER和BA…

小狐狸GPT付费体验系统更新版本(历史版本)

3.0.2版本&#xff1a;小狐狸GPT付费体验系统下载&#xff08;需要密码&#xff09; 3.0.1版本&#xff1a;小狐狸GPT付费体验系统下载 2.7.2版本&#xff1a;小狐狸GPT付费体验系统下载 2.6.7版本&#xff1a;小狐狸GPT付费体验系统下载

关于解决“文件已被另一程序打开无法删除文件”的方法

解决方法 找了几个解决方法&#xff1a; 用管理员模式打开cmd&#xff0c;输入rd /s /f 文件路径删除文件&#xff0c;无效。结果出现拒绝访问。打开电脑安全模式&#xff0c;无效。用管理者模式启动cmd&#xff0c;使用CHKDSK 修复命令&#xff1a;chkdsk D: /f /r /x。然后…

opencv—常用函数学习_“干货“_总

同样内容将拆解为一份份,发在我个人博客中 如http://t.csdnimg.cn/icOfX(非VIP文章),整理不易、感谢你的点赞收藏 目录 一、图像文件 1. imread:读取图像文件 2. imwrite:写入图像文件 3. imshow:显示图像 4. VideoCapture:捕获视频 二、创建Mat 1、创建Mat对…

Word参考文献交叉引用

前言 Word自带交叉引用功能&#xff0c;可在正文位置引用文档内自动编号的段落&#xff0c;同时创建超链接&#xff0c;适用于参考文献的引用。使用此方法对参考文献进行引用后&#xff0c;当参考文献的编号发生变化时&#xff0c;只需要更新域即可与正文中的引用相对应。下文…

【mysql】02在ubuntu24安装并配置mysql

安装 sudo apt-get update sudo apt-get install mysql-server设置root密码 ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY new_password;FLUSH PRIVILEGES;添加用户并设置远程可访问 添加用户并赋予权限 CREATE USER remote_user% IDENTIFIED BY Pa…

2024Datawhale AI夏令营---Inclusion・The Global Multimedia Deepfake Detection--学习笔记

赛题背景&#xff1a; 其实总结起来就是一句话&#xff0c;这个项目是基于目前的深度伪装技术&#xff0c;就是通过大量人脸的原数据集进行模型训练之后&#xff0c;能够生成伪造的人脸视频。这项目就是教我们如何去实现这个DeepFake技术。 Task1:了解Deepfake和跑通baseline …

YOLOv8目标跟踪deepsort

原文:YOLOv8目标跟踪deepsort - 知乎 (zhihu.com) 一、YOLOV8 tracking 参考文章: Ctrl CV:YoloV5 + DeepSort1 赞同 0 评论文章 二、行人重识别(ReID) ——Market-1501 数据集 2.1、数据集简介 Market-1501 数据集在清华大学校园中采集,夏天拍摄,在 2015 年构建并…

VLAN虚拟局域网

VLAN虚拟局域网&#xff1a;是一种将局域网设备从逻辑上划分成不同广播域的技术。这些逻辑上的子网被称为VLAN。VLAN可根据用户、设备、应用或者策略等来划分&#xff0c;使得不同VLAN中的设备不能直接通信&#xff0c;从而提高网络的安全性、灵活性和性能。 作用&#xff1a;…

10,SSH Fail2Ban 教程

Fail2Ban 教程 简介 Fail2Ban 是一个 Linux 系统的应用软件&#xff0c;用来防止系统入侵&#xff0c;主要是防止暴力破解系统密码。它是用 Python 开发的。 它主要通过监控日志文件&#xff08;比如/var/log/auth.log、/var/log/apache/access.log等&#xff09;来生效。一…

【PyTorch快速入门教程】02 Jupyter notebook安装及配置

文章目录 1 安装 Jupyter notebook2 安装 ipykernel3 更改 jupyter 默认配置3.1 生成配置文件3.2 关键配置信息 4 扩展插件推荐参考 1 安装 Jupyter notebook 一行命令搞定 python -m pip install jupyter 现在就可以打开Jupyter notebook来运行python啦。 jupyter notebook…