安全初级:字符编码

字符编码

字符编码:是一种映射规则,根据映射规则将字符映射成其他形式的数据在计算机中存储和传输。

常用的编码

编码制定时间作用
ASCII1967表示英语及西欧语言
GB23121980国家简体中文字符集,兼容ASCII
Unicode1991国际标准化组织统一标准字符集
GBK1995GB2313的拓展字符集,支持繁体字,兼容GB2312
UTF-819912不定长编码

ASCII码

img

GB2312编码

GB2312编码是第一个汉字编码国家标准,由中国国家标准总局1980年发布,1981年5月1日开始使用。GB2312编码共收录汉字6763个,其中一级汉字3755个,二级汉字3008个。同时,GB2312编码收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。

GB2312编码范围:A1A1-FEFE

汉字的编码范围:B0A1-F7FE

分区表示
GB2312编码对所收录字符进行了“分区”处理,共94个区,每区含有94个位,共8836个码位。这种表示方式也称为区位码。
01-09区收录除汉字外的682个字符。
10-15区为空白区,没有使用。
16-55区收录3755个一级汉字,按拼音排序。
56-87区收录3008个二级汉字,按部首/笔画排序。
88-94区为空白区,没有使用。

举例:GB2312的第一个汉字是”啊“字,位于16区的01位,那么它的区位码就是1601。

双字节编码
GB2312规定对收录的每个字符采用两个字节表示,第一个字节为“高字节”,对应94个区;第二个字节为“低字节”,对应94个位。所以它的区位码范围是:0101-9494。区号和位号分别加上0xA0就是GB2312编码。

UTF-8编码

网页可以使用不同语言的编码,最常用的编码是UTF-8。

Unicode字符集旨在收集世界上所有的字符,目前已经收入了十多万个字符。UTF-8编码也是Unicode字符集的其中一种表示方法。

码点(code point):每个字符的Unicode号码

字符的码点表示方法:

  • 十进制:&#N(N代表码点 ascii编码)
  • 十六进制:&#xN(N代表码点 ascii编码)

**可变长度字符编码:**UTF-8 使用一至四个字节对 Unicode 字符集中的所有有效代码点进行编码。

  • UTF-8 使用 1 个字节表示 ASCII 字符;
  • UTF-8 使用 2 个字节表示带有附加符号的拉丁文、希腊文等;
  • UTF-8 使用 3 个字节表示其他基本多文种平面(BMP)中的字符(包含了大部分常用字,如大部分的汉字);
  • UTF-8 使用 4 个字节表示 Unicode 辅助平面的字符。
字符实体表示法字符实体表示法
<&lt;>&gt;
"&quot;&apos;
&&amp;©&copy;
#&num;§&sect;
¥&yen;$&dollar;
£&pound;¢&cent;
%&percnt;*$ast;
@&commat;^&Hat;
±&plusmn;空格&nbsp;
Unicode符号范围(十六进制)UTF-8编码(二进制)
0000 0000-0000 007F0xxxxxxx
0000 0080-0000 07FF110xxxxx 10xxxxxx
0000 0800-0000 FFFF1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

URL

URL是”统一资源定位符“(Uniform Resource Locator),中文为”网址“,即各种资源的互联网网址。

https://www.example.com:80/path/index.html

网址的组成部分

协议-域名/IP-端口-路径-查询参数-锚点

协议

协议是浏览器请求服务器资源的方法,如https://就是表示使用了HTTPS协议。

HTTPS是HTTP的加密版本,现在的网站中,大部分都是使用HTTPS协议来保障自身网站的安全。

主机

主机(host)也称域名,https://www.example.com:80/path/index.html的域名就是www.example.com,当然,不是所有的主机都有域名,没有域名的主机是使用自己的IP地址。

端口

一个域名有可能有很多个网站,这之间通过端口(port)来进行区分。

端口是跟在域名后面,用冒号分隔开。如www.example.com:80

常见协议及端口号

协议端口号
HTTP80
HTTPS443
FTP20/21
SMTP25
POP3110
IMAP143
DHCP67/68
Telnet23
SSH22
NTP123
SNMP161/162
RDP3389
ICQ7
SIP5060/5061

常见服务及端口

服务端口
mysql3306
sqlserver1433
oracle1521
Windows远程连接3389
redis6379

路径

路径(path)是资源在网站的位置。如https://www.example.com:80/path/index.html/path/index.html就是路径。

查询参数

查询参数(parameter)是提供给服务器的额外信息。参数放在路径的后面,使用?分隔。

查询参数可以是一组或多组,每一组都使用键值对的形式,键名和键值之间用=连接,多组参数之间使用&连接。

URL字符

URL的组成部分只能使用以下字符

  • 26个英语字母(包括大写和小写)
  • 10个阿拉伯数字
  • 连词号(-
  • 句点(.
  • 下划线(_

还有18个字符是URL的保留字符,网址在使用这些字符时,需要进行转义。

字符转义的方法就是在字符的十六进制ASCII码前面加上%

字符转义形式
%21
#%23
$%24
&%26
%27
(%28
)%29
*%2A
+%2B
,%2C
/%2F
:%3A
;%3B
=%3D
?%3F
@%40
[%5B
]%5D

HTTP状态码

常见的状态码:

状态码200:

状态码200表示服务器响应成功,就是服务器找到了客户端请求的内容,并且将内容返回给客户端。

状态码302:

状态码302代表临时跳转。例如:URL地址A可以向URL地址B上跳转,但这并不是永久性的,在经过一段时间后,URL地址A还可能向URL地址C上跳转。

状态码301 :
状态码301和状态码302相似,不同的是状态码301往往代表的是永久性的重定向,值得注意的是,这种重定向跳转,从严格意义来讲不是服务器跳转,而是客户端跳转的。这个“跳”的动作是服务器是通过回传状态码301来下达给客户端的,让客户端完成跳转。

状态码304:
服务器通过返回状态码304可以告诉客户端请求资源成功,但是这个资源不是由服务器提供返回给客户端的,而是客户端本地浏览器缓存中就有的这个资源,因为可以从缓存中获取这个资源,从而节省传输的开销。

状态码403:
状态码403代表请求的服务器资源权限不够,也就是说,没有权限去访问服务器的资源,或者请求的IP地址被封掉了。

状态码404:
状态码404代表服务器上没有该资源,或者说服务器找不到客户端请求的资源,是最常见的请求错误码。

状态码500:
状态码500代表程序错误,也就是说请求的网页程序本身报错了。在服务器端的网页程序出错。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/8203.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自定义MVC

目录 一.什么是MVC 1.1.三层架构和MVC的区别 二.自定义MVC工作原理图 三.自定义mvc实现 3.1 创建web工程 3.2 中央处理器 3.3 Action接口定义 3.4 实现子控制器 3.5 完善中央控制器 3.5.1 请求分发功能 3.5.2 使用配置文件配置action 3.5.3 请求参数处理 1. 定义接…

[JAVAee]阻塞队列

阻塞队列的含义 有队列这两个字的,少不了"先进先出"这个特性 阻塞队列是一种线程安全的数据结构,主要的特性有: 当队列满的时候, 继续入队列就会阻塞, 直到有其他线程从队列中取走元素.当队列空的时候, 继续出队列也会阻塞, 直到有其他线程往队列中插入元素. 阻塞…

DTH11 温湿度模块

文章目录 前言一、DTH11 模块介绍二、设备树设置三、驱动程序四、测试程序五、上机测试及效果总结 前言 DHT11 是一款可测量 温度 和 湿度 的传感器。比如市面上一些空气加湿器&#xff0c;会测量空气中湿度&#xff0c;再根据测量结果决定是否继续加湿。 一、DTH11 模块介绍 …

iOS 单元测试之常用框架 OCMock 详解

目录 前言&#xff1a; 一、单元测试 1.1 单元测试的必要性 1.2 单元测试的目的 - 约束条件是否通过形式参数来传送。 1.3 单元测试依赖的两个主要框架 二、OCMock 的集成与使用 2.1 OCMock 的集成方式 2.2 OCMock 的使用方法 2.3 mock 使用限制 前言&#xff1a; OC…

【unity】ShaderGraph学习笔记

【unity】ShaderGraph学习笔记 创建ShaderGraph 创建URP的shaderGraph文件 在Project面板里Create→ShaderGraph→URP→这里主要有几个选项 Lit Shader Graph&#xff1a;有光照三维着色器 Unlit Shader Graph&#xff1a;无光照三维着色器 Sprite Custom Lit Shader Gra…

Linux常用操作命令集合

1、 开机启动脚本的设置 如何增加一个服务&#xff1a; 服务脚本必须存放在/etc/ini.d/目录下&#xff1b;&#xff08;具体请参照Centos JDK 和tomcat部署笔记&#xff09; chkconfig --add servicename在chkconfig工具服务列表中增加此服务&#xff0c;此时服务会被在/etc/r…

Elasticsearch 简单搜索查询案例

1.MySql表结构/数据 SET FOREIGN_KEY_CHECKS0;-- ---------------------------- -- Table structure for user_lables -- ---------------------------- DROP TABLE IF EXISTS user_lables; CREATE TABLE user_lables (id varchar(255) DEFAULT NULL COMMENT 用户唯一标识,age…

CNN(卷积神经网络)的实现过程详解

概要 在图像处理领域&#xff0c;CNN(卷积神经网络)处于绝对统治地位&#xff0c;但对于CNN具体是如何用神经网络实现的&#xff0c;能找到的介绍要么是一大堆数学公式&#xff0c;要么是大段晦涩的文字说明&#xff0c;读起来很是辛苦&#xff0c;想写好一片完整的而且有深度的…

【开源项目】低代码数据可视化开发平台-Datav

Datav 基本介绍 Datav是一个Vue3搭建的低代码数据可视化开发平台&#xff0c;将图表或页面元素封装为基础组件&#xff0c;无需编写代码即可完成业务需求。 它的技术栈为&#xff1a;Vue3 TypeScript4 Vite2 ECharts5 Axios Pinia2 在线预览 账号: admin 密码: 123123预…

Spring Cloud+Spring Boot+Mybatis+uniapp+前后端分离实现知识付费平台免费搭建

Java版知识付费-轻松拥有知识付费平台 多种直播形式&#xff0c;全面满足直播场景需求 公开课、小班课、独立直播间等类型&#xff0c;满足讲师个性化直播场景需求&#xff1b;低延迟、双向视频&#xff0c;亲密互动&#xff0c;无论是互动、答疑&#xff0c;还是打赏、带货、…

Redis底层封装细节

日常我们程序员在使用redis做缓存的时候&#xff0c;很少会直接使用到RedisTemplate直接操作k-v键值对&#xff0c;而是通过对RedisTemplate原生代码的封装&#xff0c;来构建我们日常便于使用习惯的代码来操作数据&#xff0c;这里我分享一下日常基本的对RedisTemplate底层的封…

[nlp] tokenizer加速:fast_tokenizer=True

fast_tokenizer 是一个布尔值参数,用于指定是否使用快速的 tokenizer。在某些情况下,使用快速的 tokenizer 可以加快模型训练和推理速度。如果 fast_tokenizer 参数为 True,则会使用快速的 tokenizer;否则,将使用默认的 tokenizer。 快速的 tokenizer 通常使用一些技巧来减…

使用Newtonsoft直接读取Json格式文本(Linq to Json)

使用Newtonsoft直接读取Json格式文本&#xff08;Linq to Json&#xff09; 使用 Newtonsoft.Json&#xff08;通常简称为 Newtonsoft&#xff09;可以轻松地处理 JSON 格式的文本。Newtonsoft.Json 是 .NET 中一个流行的 JSON 处理库&#xff0c;它提供了丰富的功能和灵活性。…

微信小程序实现蓝牙开锁、开门、开关、指令发送成功,但蓝牙设备毫无反应、坑

文章目录 开源htmlJavaScript 开源 wx联系本人获取源码(开源): MJ682517 html <view><view class"p_l_36 p_r_36"><input class"w_100_ h_80 lh_80 ta_c b_2s_eee radius_20" value"{{instructVal}}" type"text" plac…

RocketMq 事务消息原理

Rocketmq 事务消息API使用 使用TransactionMQProducer类。 实现TransactionListener 接口覆盖其方法executeLocalTransaction和checkLocalTransaction 即可。 其中executeLocalTransaction 执行本地方法和checkLocalTransaction 事务状态回查。 玩法 简历一张本地事务表&…

51单片机定时器

51单片机定时器 1.简介 C51中的定时器和计数器是同一个硬件电路支持的&#xff0c;通过寄存器配置不同&#xff0c;就可以将他当做定时器 或者计数器使用。 确切的说&#xff0c;定时器和计数器区别是致使他们背后的计数存储器加1的信号不同。当配置为定时器使 用时&#xff0…

回归预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元多输入单输出回归预测 目录 回归预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 ![6 基本介绍 1.MATLAB实现TCN-BiGRU时间卷积双向门控循…

JSON格式Python,Java,PHP等封装获取淘宝商品详情描述数据API

淘宝是一个网上购物平台&#xff0c;售卖各类商品&#xff0c;包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取淘宝天猫商品详情描述数据&#xff0c;您可以通过开放平台的接口或者直接访问淘宝天猫商城的网页来获取商品详情详细信息。以下是两种常用方法的介绍&#…

C语言假期作业 DAY 02

题目 一、选择题 1、以下程序段的输出结果是&#xff08; &#xff09; #include<stdio.h> int main() {char s[] "\\123456\123456\t";printf("%d\n", strlen(s));return 0; } A: 12 B: 13 C: 16 D: 以上都不对 2、若有以下程序&#xff0c;则运行…

实现基于UDP简易的英汉词典

文章目录 实现目标认识相关接口socketbzerobindrecvfromsendto 实现思路和注意事项完整代码Server.hppServer.ccClient.hppClient.cc 运行效果END 实现目标 实现一个服务端和一个客户端&#xff0c;客户端负责发送一个单词&#xff0c;服务端接收到后将翻译后的结果返回发送到…