欢迎光临
我们一直在努力

HTTP应用数据组织、HTML/CSS/JS数据描述及应用层数据处理介绍

文章目录

一、HTTP应用数据的组织规则【请求响应消息怎么组织】

1.消息内容写什么

1.1请求什么:

1.2响应什么:

2.消息结构怎么写

2.1起始行:

2.1.1请求行

2.1.1.1请求方法

2.1.1.1.1GET获取

2.1.1.1.2POST提交/处理/创建

2.1.1.1.3PUT整体替换

2.1.1.1.4PATCH部分修改

2.1.1.1.5DELETE删除

2.1.1.1.6HEAD获取

2.1.1.1.7OPTIONS询问

幂等

2.1.1.2URL

2.1.1.2.1scheme:(协议方案)

2.1.1.2.2//host(主机)

2.1.1.2.3:port(端口)

2.1.1.2.4/path(路径)

2.1.1.2.5?query(查询字符串)

2.1.1.2.6#fragment(片段标识符)

2.2消息体

3.消息一一对应

4.消息整个应用层单元

HTTPS加密传输

二、HTML、CSS、JS应用数据的描述格式【数据怎么描述网页】

1.HTML

2.CSS

3.JavaScript

三、应用层应用数据的应对处理【数据怎么使用渲染】

1.浏览器

1.1缓存

1.1.1CDN服务器


一、HTTP应用数据的组织规则【请求响应消息怎么组织】

HTTP应用层协议

1.消息内容写什么

1.1请求什么:

  • 要什么资源
  • 要它做什么

1.2响应什么:

  • 给什么结果
  • 给它处什么

2.消息结构怎么写

按行组织的字符文本

  • 起始行
  • 首部字段headers
  • 空行
  • 消息体body
  • 客户端在请求pathqueryheadersbody上传指令和数据给服务器

    2.1起始行:

    • 请求里的请求行
    • 响应里的状态行
    2.1.1请求行

    浏览器直接向源站服务器发请求时 用标准请求行: methoud request-target scheme/version                ↓/path?query Host:host

    代理时用绝对请求行: methoud URL scheme/version Host:host

    2.1.1.1请求方法

    请求方法传达服务器 以什么语义来处理目标资源,语义倾向并不决定 本来就依据内容地 可穿含兼容式的处理

    2.1.1.1.1GET获取

    客户端向目标资源上传获取指令 语义服务器读取资源 返回URL资源的表示内容,特点:

  • 通常不应修改服务器状态
  • 通常是安全的
  • 通常是幂等的
  • 最常用于取HTML、CSS、JS、图片、JSON
  • GET的body 通用语义兼容性: 很多服务器、框架、代理、缓存都不支持或不推荐 GET请求依赖body放业务指令


    2.1.1.1.2POST提交/处理/创建

    客户端向目标资源上传提交数据 语义服务器处理资源,用于:

    • 提交表单
    • 上传
    • 登录
    • 新建资源
    • 触发某个处理动作

    上传的保密数据 放query不安全

  • 容易出现在浏览器地址栏
  • 容易进入历史记录
  • 容易被日志记录
  • 容易被复制传播
  • 通常放在body里 配合HTTPS加密传输


    2.1.1.1.3PUT整体替换

    用这份完整内容替换目标资源 或在指定位置创建资源


    2.1.1.1.4PATCH部分修改

    目标资源做部分修改


    2.1.1.1.5DELETE删除

    删除目标资源


    2.1.1.1.6HEAD获取

    获取目标资源 只要响应头


    2.1.1.1.7OPTIONS询问

    询问目标资源 支持哪些方法、哪些通信选项


    幂等

    请求操作重复执行 影响后的资源结果相同幂等

    • GET、PUT、DELETE通常设计成幂等
    • POST通常不是幂等

    2.1.1.2URL

    URL标识Web逻辑上的资源不一定对应服务器磁盘 物理位置上的资源 scheme://authority/path?query#fragment                      ↓ HTTP的URL:scheme://[userinfo@]host[:port][/path][?query][#fragment]([]表示可省略)

    2.1.1.2.1scheme:(协议方案)

    表示采用什么协议访问资源:

    • http
    • https

    2.1.1.2.2//host(主机)

    表示访问哪个主机

    • 域名
    • IP

    2.1.1.2.3:port(端口)

    表示访问主机上的哪个服务端口

    • HTTP默认80
    • HTTPS默认443

    2.1.1.2.4/path(路径)

    path是服务器程序自己解释的路由路径,不一定对应 服务器硬盘上的真实文件路径,表示访问站点里的哪个路径资源

    • /”站点上的逻辑根路径资源 通常会被网站设计成首页

    2.1.1.2.5?query(查询字符串)

    给资源附带的参数,表示筛选、搜索、分页、条件说明 资源:

    • ?query=java&page=2

    2.1.1.2.6#fragment(片段标识符)

    客户端自己用页面内路径跳转到锚点前端路由,不会出现在HTTP请求里 发给服务器


    2.2消息体

  • 请求体中放资源内容 用于上传文件提交文本内容
  • 响应体中放资源的内容表示:HTML、CSS、JS、JSON、图片、视频、文件

  • 3.消息一一对应

    请求一个网页 会触发多个请求-响应对

  • 浏览器请求主HTML文件一次 -> 服务器返回响应一次
  • 浏览器解析HTML 发现还需要CSS、JS、图片、字体资源 额外发送多个请求 -> 服务器对应每个请求地返回多个响应

  • 4.消息整个应用层单元

    应用层HTTP消息TCP传输 向下拆成加头多个TCP段 再各自被IP封装多个网络数据包


    HTTPS加密传输

    HTTPS加密传输 = HTTP明文传输 + TLS加密传输层

    TLS负责:

  • 加密 中间人更难 直接偷看到你传输的内容
  • 完整性校验 中途更难 悄悄篡改内容而不被发现
  • 身份验证 浏览器通过证书确认 你连接的是声称的那个站点

  • 二、HTML、CSS、JS应用数据的描述格式【数据怎么描述网页】

    1.HTML

    HTML是网页的结构描述语言,告诉浏览器:

    • 这里有标题
    • 这里有段落
    • 这里有图片
    • 这里引用了某个CSS和某个JS

    2.CSS

    CSS是网页的样式规则,告诉浏览器:

    • 字体多大
    • 颜色是什么
    • 元素排版怎么摆
    • 哪个盒子多高多宽

    3.JavaScript

    JavaScript是网页的行为逻辑,告诉浏览器:

    • 点击按钮后做什么
    • 如何动态修改页面内容
    • 如何向服务器发送AJAX/fetch请求
    • 如何做交互、校验、动画

    三、应用层应用数据的应对处理【数据怎么使用渲染】

    • 应对HTML、CSS、JS、TEXT数据 渲染成网页
    • 应对image/png数据 显示成图片
    • 应对application/json数据 交给JS程序处理
    • 应对application/octet-stream数据 下载成文件

    1.浏览器

    浏览器是一个兼容面向许多服务器客户端程序,它会:

    • 和服务器建立连接
    • 发送HTTP请求
    • 接收响应
    • 解析HTML、CSS、JS数据 渲染组合成页面
    • 执行JS
    • 管理Cookie、缓存、历史记录、安全策略

    客户端浏览器应用

    1.通过地址找到服务器 2.按照HTTP协议 组织请求消息发送

    服务器应用 3.按照HTML、CSS、JS格式 把数据描成网页内容装进响应消息 4.按照HTTP协议 组织响应消息发回

    5.解析主HTML 发现里面引用CSS、JS、图片 再发请求获取它们资源 组合渲染成页面

    1.1缓存

    浏览器在服务器的响应头和缓存策略的允许下 缓存HTTP响应,可以设置保留时间地缓存 动态资源时段临新的内容

    • GET请求的响应常能复用 常被缓存
    • POST请求的响应 没有GET常见被缓存

    浏览器缓存后 下次获取资源时:

    1.强缓存生效 浏览器不发请求 直接用本地缓存

    2.协商缓存 浏览器发送 带上If-None-Match/If-Modified-Since的请求:

    • 服务器发现资源没变 返回304 -> 浏览器继续使用本地缓存
    • 服务器发现资源已变 返回200 -> 浏览器发送请求取新资源
    1.1.1CDN服务器

    CDN是分布在全国各地的边缘节点 缓存合作网站里的公共资源

    —> 浏览器访问网站时:

    • 图片CSS、JS 走CDN
    • 登录、下单、用户中心 走源站

    不公共缓存到CDN:

  • 强个性化内容
  • 强实时内容·
  • 带私密数据的响应
  • 赞(0)
    未经允许不得转载:171主机测评 » HTTP应用数据组织、HTML/CSS/JS数据描述及应用层数据处理介绍
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址