《透视HTTP协议》学习笔记Day144

数字追云人
• 阅读 24

你能写出正确的网址吗?

统一资源标识符 URI()
统一资源定位符 URL()

URI的格式

URI本质是一个字符串,这个字符串的作用是唯一地标记资源的位置或者名字。
这图显示了URI最常用的形式,由schema、host:post、path和query四个部分组成,但有部分可以视情况省略。
《透视HTTP协议》学习笔记Day144

URI基本组成

scheme:协议名,方案名,表示资源应该使用哪种协议来访问。
三个特定的字符 "://",把scheme和后边的部分区分开。
authority:表示资源所在的主机名。通常的形式是"host:port",即主机名加端口号。
path:标记资源所在位置。URL的path必须要以"/"开始。

URI的查询参数

仅用“scheme+host:port+path”的方式无法适应所有的场景,所以URI后面还有一个"query"部分。
查询参数有一套自己的格式,是多个"key=value"的字符串。这些KV值用字符"&"连接,浏览器和服务器都可以按照这个规则把长字符串解析为可理解的字典或关联数组形式。

URI的完整格式

《透视HTTP协议》学习笔记Day144
第一个多出的部分在协议名之后,主机名之前的身份信息"user:passwd"
第二个多出的部分是查询参数的片段标识符"#fragment"

URI的编码

URI里只能使用ASCII码。
URI引入了编码机制,对除了ASCII码之外的字符集和特殊字符做一个特殊操作,把它们转换成与URI语义不冲突的形式。在RFC规范里称"escape"和"unescape",俗称转译。
URI转移规则有点“简单粗暴”,直接将非ASCII码或特殊字符转换为十六进制字符值,然后前面加一个"%"。

此文章为11月Day10学习笔记,内容来源于极客时间《透视HTTP协议》,以梦为马,11月进步💪💪
点赞
收藏
评论区
推荐文章
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
4年前
Nginx 伪静态Rewrite,重定向Location配置总结(转)
语法规则:location\|~|~\|^~\/uri/{…}\开头表示精确匹配^~开头表示uri以某个常规字符串开头,理解为匹配url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~/static//aa匹配到(注意是空格)。~开头表示区分大小写的正则匹配~\ 
Wesley13 Wesley13
4年前
URI与URL的区别
    这两天在写代码的时候,由于涉及到资源的位置,因此,需要在JavaBean中定义一些字段,用来表示资源的位置,比如:imgUrl,logoUri等等。但是,每次定义的时候,心里都很纠结,是该用imgUrl还是imgUri呢?    同样的,另外一个问题:StringHttpServletRequest.getRequestURI();和Stri
Wesley13 Wesley13
4年前
URI URL java 输出
URIurinewURI("http://myname@www.baidu.com:8888/path1/path1?query1value1fffffff");System.out.println("URI.getAuthority()"uri.getAuthority());System.ou
Stella981 Stella981
4年前
CodeIgniter的URL URI
\\\\\\\\\\\\\\\\\\\\\\\\URI,是uniformresourceidentifier,统一资源标识符,用来唯一的标识一个资源。而URL是uniformresourcelocator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locat
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
4年前
HTTP协议
URI与URL有什么不同呢?URI:UniversalResourceIdentifier统一资源标志符URL:UniversalResourceLocator统一资源定位器URI是用来唯一地确定资源的表示方式,只要资源能唯一确定,则可以算作一种URIURL是用定位的方式来确定资源的表示方式,比如常见的http://www.googl
Wesley13 Wesley13
4年前
HTTP协议对URI长度,POST数据长度及COOKIE长度限制说明
1\.URL长度限制在Http1.1协议中并没有提出针对URL的长度进行限制,RFC协议里面是这样描述的,HTTP协议并不对URI的长度做任何的限制,服务器端必须能够处理任何它们所提供服务多能接受的URI,并且能够处理无限长度的URI,如果服务器不能处理过长的URI,那么应该返回414状态码。虽然Http协议规定了,但是
Wesley13 Wesley13
4年前
HTTP协议的头信息详解
HTTP协议的头信息详解HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。