2w字干货 | 带你领略不同的HTTP协议
Posted 前端老番茄
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2w字干货 | 带你领略不同的HTTP协议相关的知识,希望对你有一定的参考价值。
前言
身为 WEB 开发人员,每天与浏览器打交道,对于 HTTP 理应理解透彻,然而发现现在却对 HTTP 的认识知之甚少,有些 WEB 开发人员甚至对状态码了解的都不透彻,只知道 200、404 和 500,方法只知道 get 和 post。所以想对 HTTP 更加深入的学习和了解。这就是我想写这篇文章的初衷。
可能文章相对基础,希望能给大家一点帮助,也是让自己对 HTTP 的理解更深入一些。
1. URI、URL 和 URN
URI(统一资源标识符)是包括 URL 和 URN 统一的定义,用来表示互联网上唯一资源的方式。因为 URN 现在还没有成熟的方案,所以在现实中所讲的 URI 和 URL 其实是一样的。
URL(统一资源定位符)用来描述了一台特定服务器上某资源的特定位置。
完整的 URL 路径包括 9 个部分:
<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
我们依次讲解这 9 部分分别代表的含义:
-
scheme:表示协议名,常用的协议名有 http、https、file 等,其没有默认值,且其后面必须加上:// -
user:用户名,当访问某些资源的时候要求加上用户名,但是他是直接在路径上显示的,所以安全性低,不建议使用。当不定义这个参数时,默认值是 anonymous(匿名用户) -
password:密码,即访问某些资源时所需要的密码,通常是与 user 配合使用,并和 user 之间用:相隔。它和 user 属性一样,安全性低,不建议使用。默认值主要看浏览器,IE 浏览器其默认值是 IEUser,Netscape Navigator 则是 mozilla -
host:主机名,表示因特网上能够访问资源的宿主服务器。可以是主机名例如 www.baidu.com,也可以是 IP 地址。 -
port:端口号,表示宿主服务器正在监听的端口号,默认端口号是 80。 -
path:服务器上资源的本地位置,跟之前的 URL 属性用 / 隔开,说白了就是表示该资源位于服务器的哪个地方。 -
params:某些协议会通过这个属性来指定输入的参数,参数以键值对的形式填写,并且可以输入多个参数,并用 ; 隔开。 -
query:查询字符串,通常用来缩小请求资源类型的查询范围,写法与 params 一样,都是以键值对的形式显示,并且可以写多个查询参数,他们之前用 & 符号隔开。 -
frag:表示 URI 所定位的资源内的一个锚点,浏览器可以根据这个锚点跳转到对应的位置。比如对于一个大型文本来说,资源的 URL 会指向整个文本文档,但是我们可以通过 frag 参数,指向某个章节。它如 URL 的其他参数要用 # 隔开。
URN(永久统一资源定位符)当资源移动之后还能被找到,但是现在还没有成熟的使用方案,所以就不过多的介绍了。
2. HTTP 报文
其实最开始听到这个词的时候,我一度认为报文为豹纹
以上是关于2w字干货 | 带你领略不同的HTTP协议的主要内容,如果未能解决你的问题,请参考以下文章