Appearance
https://www.foo.com:443/bar/index.html?baz=baz#hash
协议 =>
https://http超文本传输协议https更安全的 httpftp文件传输协议
域名 =>
www.foo.com方便记忆,映射到 IP 地址或另一个域名。
端口号 =>
443取值范围
0-65535,用端口号来区分同一台服务器上的不同项目。http80https443ftp21SMTP25MySQL3306Redis6379
请求资源路径名称 =>
/bar/index.html服务器接收到请求后
根据端口号找到对应的项目
根据请求资源的路径名称找到资源文件
读取资源文件中的内容
把内容返回
不指定资源路径名称服务器会找默认的资源,如 default.html、index.html..., 可以在服务器配置多个默认资源,如果没找到返回 404。
伪 URL 地址的处理
https://item.jd.hk/index.php?id=2688449=>https://item.jd.hk/2688449.htmlURL 重写技术常用于将动态网址(如带有参数的 URL)转换为更简洁、易读的“伪静态”网址。这样做的主要目的是提升 SEO,因为搜索引擎更容易收录结构清晰、关键词明确的静态 URL。
query 参数
?baz=baz客户端向服务器传参的三种方式:
query 参数、请求头、请求体,query 参数也可以用于不同页面之间的信息交互hash值
#hash页面内导航
hash常用于页面内跳转,定位到页面中的某个元素(如标题、段落等)。浏览器会自动滚动到带有对应id的元素位置。
单页应用(SPA)路由
在前端单页应用中,hash常用来模拟不同的页面路由。通过监听hash变化(window.onhashchange),可以实现页面内容的切换而无需刷新页面。
不会被发送到服务器
hash部分不会被包含在HTTP请求中,服务器无法直接获取hash内容,它只在浏览器端起作用。
状态记录与分享
可以用 hash 记录页面的某种状态,用户刷新或分享带有 hash 的 URL 时,可以直接恢复到对应状态或位置。
URI / URL / URN 区别
URI(Uniform Resource Identifier,统一资源标识符)
是一个通用的概念,用来唯一标识一个资源,不管这种标识是基于名字还是基于位置。URL 和 URN 都是 URI 的子集。
URL(Uniform Resource Locator,统一资源定位符)
用于定位互联网上的资源,必须包含资源的访问方式(协议)和位置(地址)。
sh
https://example.com:8080/index.htmlURN(Uniform Resource Name,统一资源名称)
用于命名某个互联网资源,通常与位置无关,资源移动后仍然有效。
sh
# urn 表示它是一个 URN
# isbn 是命名空间标识符
# 978-7-302-12100-6 是书籍的国际标准书号
urn:isbn:978-7-302-12100-6