关于http-https的URL格式-及URL-Encode-基本格式分析

发布时间 2023-09-30 10:59:32作者: 520_1351

关于http,https 的协议格式,在很多资料上看到,基URL格式的如下:

shceme://username:password@host:port/path;params?query#frag

params:
key=value&key2=value2

query(前面的资源可能会有SQL的where语句,一般就使用这里query):
field=value&field=value2

frag: 锚定一个大的网页的不同的位置

对于params,笔者在实际中几乎是没有看到过,更多的是看到query格式,于是先记录于此,有时间再做研究

因此笔者可能看到的最为常见的格式如下:

httpORhttps://username:password@wwww.example.com:port/dir/index.html?key1=value1&key2=value2#frag01

带层次的文件(PATH路径):表示访问服务器某应用程序中的具体资源

查询字符串(query string):这是客户端给服务器传递的参数,键值对结构,键和值之间用=分割,每个键值对之间用&分割

其中的键和值都是由程序员进行定义的,因此可以有该参数,也可以没有,在开发 web 程序的过程中扮演着重要角色

 

片段标识:用于页面内的跳转,通过该标识可以跳到文档的不同位置

关于URL encode 

当我们在百度中搜索关键字时,会发现query string 中的第一个键值对wd的值就是此次搜索查询的内容

有时会看到%20这样的内容,其实这个是代表的空格,这是因为URL中有着很多有特殊含义的符号

为了避免query string中出现这些特殊符号,导致格式错误,就需要对其中的符号进行转义,这样转义的过程就叫 URL encode

转义的方法就是直接取当前需要被转义的字符串的内存十六进制形式

如果复制出来,可以发现每个字节前加上%,如果使用的是UTF-8编码,汉字需要用3个字节进行表示,如锚定会显示成:%E9%94%9A%E5%AE%9A

关于utf-8编码汉字,转十六进制,笔者发现可以使用这个网址在线转换:https://lzltool.cn/Tools/Utf8ToHex

关于HTTP的基本格式

可以有零个或者多个首部,每个首部都包含一个名字,后面跟着一个冒号:,然后是一个可选的空格,接着是一个值,最后是一个CRLF(回车或者换行)。

首部是由一个空行(CRLF)结束的,表示了首部列表的结束和实体主体部分的开始

有些HTTP版本,比如HTTP/1.1要求有效的请求或响应报文中必须包含特定的首部

 

 

尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17737659.html