N3 Web常用编码学习笔记

Web使用过程常见编码有:

  1. URL编码
  2. Unicode编码
  3. HTML编码
  4. Base64编码

1.1 URL编码规则

url编码是一种浏览器用来打包表单输入的格式。浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码(移去那些不能传送的字符,将数据排行等等)作为URL的一部分或者分离地发给服务器。不管哪种情况,在服务器端的表单输入格式样子象这样:
theName=Ichabod+Crane&gender=male&status=missing& ;headless=yes
每对name/value由&;符分开;每对来自表单的name/value由=符分开。如果用户没有输入值给这个name,那么这个name还是出现,只是无值。任何特殊的字符(就是那些不是简单的七位ASCII,如汉字)将以百分符%用十六进制编码,当然也包括象 =,&;,和 % 这些特殊的字符。其实url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上“%”。比如“\”,它的ascii码是92,92的十六进制是5c,所以“\”的url编码就是%5c。

1.2 URL编码表

N3 Web常用编码学习笔记_第1张图片
N3 Web常用编码学习笔记_第2张图片
防SQL注入通常会将value部分进行检查,如果发现被拦截,把name进行url编码再提交的话,有可能绕过检查了。例如:参数是ph4nt0m=lake2 and lis0,此时程序能够检测到;如果提交%50h4nt0m=lake2 and lis0(对p进行url编码),程序就会去判断%50h4nt0m的值,而%50h4nt0m会被转换为ph4nt0m,所以%50h4nt0m值为空,于是就绕过了检测。

2.1 Unicode编码表

U+0020 空格
U+0021 ! 叹号
  U+0022 " 双引号
  U+0023 # 井号
  U+0024 $ 价钱/货币符号
  U+0025 % 百分比符号
  U+0026 & 英文“and”的简写符号
  U+0027 ’ 引号
  U+0028 ( 开 左圆括号
  U+0029 ) 关 右圆括号
  U+002A * 星号
  U+002B + 加号
  U+002C , 逗号
  U+002D - 连字号/减号
  U+002E . 句号
  U+002F / 左斜杠
  U+0030 0 数字 0
  U+0031 1 数字 1
  U+0032 2 数字 2
  U+0033 3 数字 3
  U+0034 4 数字 4
  U+0035 5 数字 5
  U+0036 6 数字 6
  U+0037 7 数字 7
  U+0038 8 数字 8
  U+0039 9 数字 9
  U+003A : 冒号
  U+003B ; 分号
  U+003C < 小于符号
  U+003D = 等于号
  U+003E > 大于符号
  U+003F ? 问号
  U+0040 @ 英文“at”的简写符号
  U+0041 A 拉丁字母 A
  U+0042 B 拉丁字母 B
  U+0043 C 拉丁字母 C
  U+0044 D 拉丁字母 D
  U+0045 E 拉丁字母 E
  U+0046 F 拉丁字母 F
  U+0047 G 拉丁字母 G
  U+0048 H 拉丁字母 H
  U+0049 I 拉丁字母 I
  U+004A J 拉丁字母 J
  U+004B K 拉丁字母 K
  U+004C L 拉丁字母 L
  U+004D M 拉丁字母 M
  U+004E N 拉丁字母 N
  U+004F O 拉丁字母 O
  U+0050 P 拉丁字母 P
  U+0051 Q 拉丁字母 Q
  U+0052 R 拉丁字母 R
  U+0053 S 拉丁字母 S
  U+0054 T 拉丁字母 T
  U+0055 U 拉丁字母 U
  U+0056 V 拉丁字母 V
  U+0057 W 拉丁字母 W
  U+0058 X 拉丁字母 X
  U+0059 Y 拉丁字母 Y
  U+005A Z 拉丁字母 Z
  U+005B [ 开 方括号
  U+005C \ 右斜杠
  U+005D ] 关 方括号
  U+005E ^ 抑扬(重音)符号
  U+005F _ 底线
  U+0060 ` 重音符
  U+0061 a 拉丁字母 a
  U+0062 b 拉丁字母 b
  U+0063 c 拉丁字母 c
  U+0064 d 拉丁字母 d
  U+0065 e 拉丁字母 e
  U+0066 f 拉丁字母 f
  U+0067 g 拉丁字母 g
  U+0068 h 拉丁字母 h
  U+0069 i 拉丁字母 i
  U+006A j 拉丁字母 j
  U+006B k 拉丁字母 k
  U+006C l 拉丁字母 l(L的小写)
  U+006D m 拉丁字母 m
  U+006E n 拉丁字母 n
  U+006F o 拉丁字母 o
  U+0070 p 拉丁字母 p
  U+0071 q 拉丁字母 q
  U+0072 r 拉丁字母 r
  U+0073 s 拉丁字母 s
  U+0074 t 拉丁字母 t
  U+0075 u 拉丁字母 u
  U+0076 v 拉丁字母 v
  U+0077 w 拉丁字母 w
  U+0078 x 拉丁字母 x
  U+0079 y 拉丁字母 y
  U+007A z 拉丁字母 z
  U+007B { 开 左花括号
  U+007C | 直线
  U+007D } 关 右花括号
  U+007E ~ 波浪纹

3.1 HTML常用编码

符号 命名实体 十进制编码
< & lt; & #60;
> & gt; & #62;
" & quot; & #34;
& #39;
| & brvbar; & #166;

4.1 Base64编码原理

N3 Web常用编码学习笔记_第3张图片

4.2 Base64编码表

N3 Web常用编码学习笔记_第4张图片
将三个字符变成四个字符后,四个字符转换为十进制所对应的字符组合起来,即为Base64编码结果。

你可能感兴趣的:(HTTP协议,http)