应用层HTTP、安全层TLS与网络底层协议介绍

文章目录

一、应用层

1.请求行

1.1直接访问源站时:

1.2代理时:

1.2.1URL编码

1.2.1.1原因

1.2.1.2方式

编码位置

2.请求头header

2.1Host

2.2Content-Type

2.2.1JSON

2.3Content-Length

2.4User-Agent

2.5Refer

2.6Cookie

2.6.1受控的JS

2.6.2站点

2.6.2.1Cookie数据

2.6.2.1.1格式

2.6.2.1.2内容

2.6.2.1.3创建

2.6.2.1.4位置

2.6.2.1.5过期

2.6.3登录

3.空行

4.请求体body

位置数据

消息边界

1.应用层

2.传输层

二、安全层

1.传输加密

三、传输层+网络层

1.目的IP+目的端口

2.IP管多端口

四、链路层


一、应用层

规定 请求/响应消息 长什么样

|----|------|
| 协议 | HTTP |

HTTP请求 = 请求行 + 请求头 + 请求体

1.请求行

1.1直接访问源站时:

methoud /path ?query scheme/version

请求行使用path+query 告诉服务器 询问内部资源的参数


1.2代理时:

methoud URL scheme/version


scheme: //目的ip :目的port /path ?query

请求行使用完整URL 告诉服务器:

  1. 外出要去的目标ip+端口 进行打通隧道 建立新连接
  2. 访问外面服务器的内部资源参数
1.2.1URL编码

URL编码处理字符串 怎样合法地放进URL

1.2.1.1原因

(1)URL语法里本来就有意义的保留字符 想作为普通数据内容出现时

| : / # @ ! $ & ' ( ) * + , ; = ||
| ? | 路径和query的分隔符 |
| & | query参数之间的分隔符 |
| = | query中 键和值的分隔符 |
| / | 路径分段符 |
| # | fragment开始符 |

: scheme:与host:port中 有特殊意义
[保留字符]

(2)URL的标准字符集外的 不合法或不安全的字符 不允许直接原样出现在URL中:

  • 空格
  • 非ASCII字符(中文)
  • 换行
  • 制表符
  • 控制字符
  • 特殊符号

1.2.1.2方式

百分号编码

  1. UTF-8字符编码 把字符对应数字
  2. 数字用十六进制 表示
  3. 数字的每个字节前加%

编码位置
位置 部分 方式
URL ++path++ 、++query++ 、++fragment++ 百分号编码
HTML 文本、属性值 实体转义
JOSN body 反斜杠转义

2.请求头header

2.1Host

Host: host(目的IP:目的端口)

请求++到达 目标服务器的目标通信端点 往上的应用程序++ 后,++解密 应用层的HTTP请求++ 里的Host 区分 在服务器内部要去的 目标IP+端口的站点


2.2Content-Type

Content-Type: application/json

表示请求的请求体body里的数据格式,提示接收方 如何解析body中的数据

|-----------|------------------------|--------------------------|
| HTML页面内容 | text/html | 浏览器解析其中的标签 转换成界面显示 |
| CSS样式文件内容 | text/css | 浏览器解析其中的选择器和属性 应用到页面的样式上 |
| JS脚本文件内容 | application/javascript | 浏览器通过JS引擎 执行js中的逻辑 |
| JSON数据 | application/json | 浏览器不做处理 |
| 图片 | image.png 或 image.jpg | 浏览器按照图片的二进制格式 解析并显示 |

2.2.1JSON

JSON(JavaScript Object Notation)是一种文本格式的数据表示方法

能表示数据类型:

  • 对象object
  • 数组array
  • 字符串string
  • 数字number
  • 布尔值true/false
  • null

用来在不同程序之间 交换结构化数据

  • 前后端传数据
  • 接口返回结果
  • 配置文件
  • 持久化结构化信息

2.3Content-Length

Content-Length: 35


2.4User-Agent

用户使用设备浏览器和操作系统信息


2.5Refer

当前页面的 跳转来源页的URL


2.6Cookie

2.6.1受控的JS

浏览器里的JS 在安全沙箱下 受控地访问本地硬盘

  1. 读取 用户手动选择的文件
  2. 下载文件
  3. 存储数据到 浏览器本地代存的站点

2.6.2站点

浏览器提供站点 代存数据在本地

2.6.2.1Cookie数据

Cookie是浏览器代网站 保存在本地站点键值对数据响应里发来保存 并在后续请求中自动带回

2.6.2.1.1格式

Cookie的格式 由**++浏览器++遵守标准 规定**的


2.6.2.1.2内容

Cookie的内容 是**++网站++自定义**的


2.6.2.1.3创建
  1. 服务器在响应头 通过Set-Cookie设置
  2. 前端JS 通过document.cookie设置

2.6.2.1.4位置
  1. 传输 时 Cookie在消息的header
  2. 存储 时 Cookie在浏览器本地的站点

2.6.2.1.5过期

服务器指定Cookie的过期时间到后,浏览器 会把它视为过期 删除不再发送


2.6.3登录

Cookie/Session 规定登录状态 怎么保存和识别

客户端

1.用户提交用户名和密码

服务器

2.验证 通过

3.创建一个session 会话

4.生成一个随机的sessionId

5.把sessionId->session保存 在服务器端

6.把sessionId 通过Set-Cookie发给浏览器

7.浏览器站点代存Cookie 后续请求自动带回sessionId

8.服务器查询sessionId 使用对应存储的session数据


3.空行

表示头结束


4.请求体body

{"username" : "alice" , "password" : "123"}


位置数据

|------------|-------------|
| 请求行、请求头 | 字符文本 |
| 请求体 | 字符文本、二进制字节流 |
| 再往下TCP、IP头 | 协议字段 |

HTML/CSS/JS/JSON/图片 是内容格式,作为主要载荷 时 通常放在请求体body里;也可作为普通字符串 出现在别处:

  • query里可放JSON字符串
  • header里可放文本片段
  • HTML响应body里可嵌CSS、JS

消息边界

1.应用层

应用层HTTP协议有规定消息边界

  1. HTTP消息 header的结束边界是一个空行
  2. HTTP消息的body 用Content-Length判断结束

2.传输层

传输层TCP是字节流 没有规定消息边界

  1. 一个HTTP请求可以被拆解到多个TCP包 发送
  2. 多个HTTP请求可以被合并到较少的TCP包里 发送

二、安全层

规定HTTP消息 怎样加密传输

|----|---------|
| 协议 | TLS/SSL |

把HTTP消息整体加密

1.传输加密

数据在一条TLS连接的两端之间路线上传输时 受保护加密 ;到达连接终止的端点上后 就能解密看到HTTP明文

代理时:

  1. 浏览器信任 抓包代理安装的根证书 主动授权代理工具成可信TLS端点
  2. 浏览器和代理建立TLS连接 往这段加密传输HTTP消息
  3. 消息到达代理TLS端点后 能解密HTTP明文
  4. 中间代理再建立TLS连接 把消息往剩段重新加密发真正服务器

三、传输层+网络层

规定数据包 怎么从这台机器送到那台机器

| | 传输层 | 网络层 |
| 协议 | TCP/UDP | IP |

通信标识 源端口、目的端口 源IP、目的IP

1.目的IP+目的端口

网络层IP头的目的IP传输层TCP/UDP头的目的端口 在互联网里找路 把包送到目标服务器的目标通信端点


2.IP管多端口

一台服务器一个IP里 可以托管很多网站的端口


四、链路层

|------|-----------|
| 协议 | 以太网/Wi-Fi |
| 通信标识 | 这一跳的MAC地址 |

相关推荐
酣大智21 小时前
策略路由PBR--企业双出口实验
网络·智能路由器·策略路由·pbr
袁小皮皮不皮21 小时前
1.HCIP BFD 学习笔记(优化版)
服务器·网络·笔记·网络协议·学习·智能路由器·ip
梁辰兴21 小时前
计算机网络基础:数据加密模型
网络·计算机网络·计算机·数据加密·计算机网络基础·梁辰兴·数据加密模型
fofantasy1 天前
NSK LH12AN 微型导轨技术手册
运维·网络·数据库·经验分享·规格说明书
网络系统管理1 天前
第八届江苏技能状元大赛“信息通信网络运行管理”项目技术文件
网络
福建佰胜张工1 天前
3HNA006643-001 BRACKET ZB/CCIB:ABB 喷涂机器人关键结构件深度解析
网络·机器人
KKKlucifer1 天前
数据安全管控产品选型排名与深度解析
网络·安全
JCETech_Info1 天前
【西门子指南】GoProbe 在 SINUMERIK 840D/828D 上的应用
网络·制造·智能制造·cnc·宏程序·测头
互联网散修1 天前
鸿蒙实战:网络状态监听与诊断工具
网络·华为·harmonyos·网络状态监听
其实防守也摸鱼1 天前
软件安全与漏洞--软件安全编码与防御技术理论题库
开发语言·网络·安全·网络安全·软件安全·软件安全与漏洞