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.消息结构怎么写

按行组织的字符文本

  1. 起始行
  2. 首部字段headers
  3. 空行
  4. 消息体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资源的表示内容,特点:

  1. 通常不应修改服务器状态
  2. 通常是安全的
  3. 通常是幂等的
  4. 最常用于取HTML、CSS、JS、图片、JSON

GET的body ++通用语义弱++ 、++兼容性差++ :

很多服务器、框架、代理、缓存都不支持或不推荐 GET请求依赖body放业务指令


2.1.1.1.2POST提交/处理/创建

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

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

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

  1. 容易出现在浏览器地址栏
  2. 容易进入历史记录
  3. 容易被日志记录
  4. 容易被复制传播

通常放在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消息体

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

3.消息一一对应

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

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

4.消息整个应用层单元

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


HTTPS加密传输

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

TLS负责:

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

二、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:

  1. 强个性化内容
  2. 强实时内容·
  3. 带私密数据的响应
相关推荐
小小说( ̄(エ) ̄)2 小时前
VRRP协议---虚拟路由器冗余协议
网络·智能路由器
Oll Correct2 小时前
实验十三:IPv4子网划分与基础路由配置实验——基于Cisco Packet Tracer的跨网段通信验证
网络·笔记
dashizhi20152 小时前
服务器共享管理之设置共享文件访问权限、记录共享文件访问行为日志?
运维·网络·stm32·安全·电脑
观测云2 小时前
观测云3月产品升级报告 | 网络设备自动发现、数据库深度分析上线,故障中心、仪表板、APM及管理能力等持续优化
网络·数据库·apm
xingyuzhisuan3 小时前
给4090服务器配电源:8卡并行需要多少瓦才稳定?
服务器·网络·云计算·gpu算力
Chuncheng's blog3 小时前
Ubuntu 24.04如何配置静态IP
网络·tcp/ip·ubuntu
虎皮辣椒小怪兽3 小时前
OSPF基础
网络·智能路由器
B站_计算机毕业设计之家3 小时前
计算机毕业设计:Python城市地铁网络可视化分析系统 Flask框架 数据分析 可视化 高德地图 数据挖掘 机器学习 爬虫(建议收藏)✅
网络·python·信息可视化·数据挖掘·flask·课程设计·美食
123过去5 小时前
wordlists使用教程
linux·网络·测试工具·安全