1、HTML实体编码
数字表示法的不方便之处,在于必须知道每个字符的码点,很难记忆。为了能够快速输入,HTML 为一些特殊字符,规定了容易记忆的名字,允许通过名字来表示它们,这称为实体表示法。
实体的写法是`&name;`,其中的`name`是字符的名字。下面是其中一些特殊字符,及其对应的实体。
- `<`:`<`
- `>`:`>`
- `"`:`"`
- `'`:`'`
- `&`:`&`
- `©`:`©`
- `#`:`#`
- `§`:`§`
- `¥`:`¥`
- `$`:`$`
- `£`:`£`
- `¢`:`¢`
- `%`:`%`
- `*`:`$ast;`
- `@`:`@`
- `^`:`^`
- `±`:`±`
- 空格:` `
字符的数字表示法和实体表示法,都可以表示正常情况无法输入的字符,逃脱了浏览器的限制,所以英语里面称为“escape”,中文翻译为“字符的转义”。
2、urlcode
URL 的各个组成部分,只能使用以下这些字符。
- 26个英语字母(包括大写和小写)
- 10个阿拉伯数字
- 连词号(`-`)
- 句点(`.`)
- 下划线(`_`)
绕过
此外,还有18个字符属于 URL 的保留字符,只能在给定的位置出现。比如,查询参数的开头是问号(`?`),也就是说,问号只能出现查询参数的开头,出现在其他位置就是非法的,会导致网址解析错误。网址的其他部分如果要使用这些保留字符,必须使用它们的转义形式。
- `!`:%21
- `#`:%23
- `$`:%24
- `&`:%26
- `'`:%27
- `(`:%28
- `)`:%29
- `*`:%2A
- `+`:%2B
- `,`:%2C
- `/`:%2F
- `:`:%3A
- `;`:%3B
- `=`:%3D
- `?`:%3F
- `@`:%40
- `[`:%5B
- `]`:%5D
例子:
有一个网页的 URL 是`foo?bar.html`,即文件里面包含一个问号,那么需要写成`foo%3Fbar.html`
3、dns
DNS就是域名系统,是因特网中的一项核心服务,是用于实现域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,得到该主机名对应的IP地址的过程叫做域名解析。
根域:DNS域名使用中规定由尾部句点'.'来指定名称位于根或者更高层次的域层次结构。
顶级域:用来指示某个国家、地区或者组织。采用三个字符,如com -> 商业公司,edu -> 教育机构,net -> 网络公司,gov -> 非军事政府机构等等。
二级域:个人或者组织在Internet使用的注册名称。采用两个字符,如:cn -> 代表中国,jp -> 日本。
主机:主机名处于域名空间结构中的最底层,主机名和域名结合构成FQDN,主机名是FQDN最左端的部分。
过程:
1)当用户输入域名时,浏览器先检查自己的缓存中是否这个域名映射的ip地址。
2 )若没命中,则检查操作系统缓存(如Windows的hosts )中有没有解析过的结果。
3 )若无命中,则请求本地域名服务器解析( LDNS )。
4 )若LDNS没有命中就直接跳到根域名服务器请求解析。根域名服务器返回给LDNS一个主域名服务器地址。
5 )此时LDNS再发送请求给上一步返回的gTLD (通用顶级域),接受请求的gTLD查找并返回这个域名对应的Name Server的地址。
6 ) Name Server根据映射关系表找到目标ip,返回给LDNS。
7 ) LDNS缓存这个域名和对应的ip,把解析的结果返回给用户,用户根据TTL值缓存到本地系统缓存中。
DNS的记录类型:
(1) `A`:地址记录(Address),返回域名指向的IP地址。
(2) `NS`:域名服务器记录(Name Server),返回保存下一级域名信息的服务器地址。该记录只能设置为域名,不能设置为IP地址。
(3)`MX`:邮件记录(Mail eXchange),返回接收电子邮件的服务器地址。
(4)`CNAME`:规范名称记录(Canonical Name),返回另一个域名,即当前查询的域名是另一个域名的跳转。
(5)`PTR`:逆向查询记录(Pointer Record),只用于从IP地址查询域名,
4、from表单
html:
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<form action="./login.php" method="post">
<input type="text" name="username" />
<input type="password" name="password">
<input type="submit" value="登陆"/>
</form>
</body>
</html>
php:
<?php
$username = $_POST['username'];
$password = $_POST['password'];
echo $username;
echo $password;