URL

183 阅读3分钟

客户端和服务器端

客户端:可以向服务器发请求,并接收返回的内容进行处理 服务器端:能够接收客户端请求,并且把相关资源信息返回给客户端的

URI/URL/URN

  • URL(Uniform Resource Locator):统一资源定位符,根据这个地址能找到对应的资源
  • URN(Uniform Resource Name):统一资源名称,一般指国际上通用的(标准的)一些名字(例如:国际统一发版的编号)
  • URI(Uniform Resource Identifier):统一资源标识符,URL和URN是URI的子集

一个完整的URL所包含的内容

www.zhufengpeixun.cn:80/stu/index.h…

  • 协议(http://):传输协议就是,能够把客户端和服务器端通信的信息,进行传输的工具(类似于快递小哥)

    • http 超文本传输协议,除了传递文本,还可以传递媒体资源文件(或者流文件)及XML格式数据
    • https 更加安全的http,一般涉及支付的网站都要采用https协议(s:ssl 加密传输)
    • ftp 文件传输协议(一般应用于把本地资源上传到服务器端)
  • 域名(www.zhufengpeixun.cn):一个让用户方便记忆的名字(不通过域名,直接用服务器的外网IP也能访问到服务器,但是外网IP很难被记住)

    • 顶级域名 qq.com
    • 一级域名 www.qq.com
    • 二级域名 sports.qq.com
    • 三级域名 kbs.sports.qq.com
    • .com 国际域名
    • .cn 中文域名
    • .com.cn
    • .edu 教育
    • .gov 政府
    • .io 博客
    • .org 官方组织
    • .net 系统类
  • 端口号(:80):端口号的取值范围0~65535,用端口号来区分同一台服务器上的不同项目

    • http默认端口号:80
    • https默认端口号:443
    • ftp默认端口号:21
    • 如果项目采用的就是默认端口号,我们在书写地址的时候,不用加端口号,浏览器在发送请求的时候会帮我们默认给加上
  • 请求资源路径名称(/stu/index.html)

    • 默认的路径或者名称 (xxx.com/stu/ 不指定资源名,服务器会找默认的资源,一般默认资源名是default.html、index.html...当然这些可以在服务器端自己配置)
    • 注意伪URL地址的处理(URL重写技术是为了增加SEO搜索引擎优化的,动态的网址一般不能被搜索引擎收录,所以我们要把动态网址静态化,此时需要的是重写URL) item.jd.hk/2688449.htm… => item.jd.hk/index.php?i…
  • 问号传参信息(?from=wx&lx=1)

    • 客户端想把信息传递给服务器,有很多的方式
      • URL地址问号传参
      • 请求报文传输(请求头和请求主体)
    • 也可以不同页面之间的信息交互,例如:从列表到详情
  • HASH值(#zhenyu)

    • 也能充当信息传输的方式
    • 锚点定位
    • 基于HASH实现路由管控(不同的HASH值,展示不同的组件和模块)

DNS服务器域名解析

DNS服务器:域名解析服务器,在服务器上存储着 域名<=>服务器外网IP 的相关记录 而我们发送请求时候所谓的DNS解析,其实就是根据域名,在DNS服务器上查找到对应服务器的外网IP

DNS优化

  • DNS缓存(一般浏览器会在第一次解析后,默认建立缓存,时间很短,只有一分钟左右)
  • 减少DNS解析次数(一个网站中我们需要发送请求的域名和服务器尽可能少即可)
  • DNS预获取(dns-prefetch):在页面加载开始的时候,就把当前页面中需要访问其他域名(服务器)的信息进行提前DNS解析,以后加载到具体内容部分可以不用解析了

HTTP报文

  • 请求报文:所有经过传输协议,客户端传递给服务器的内容,都被成为请求报文
    • 起始行
    • 请求头(请求首部)
    • 请求主体
  • 响应报文:所有经过传输协议,服务器返回给客户端的内容,都被成为响应报文
    • HTTP状态码
    • 响应头
    • 响应主体
  • HTTP报文:请求报文+响应报文