目录一、HTML标签分类空标签/单标签闭合标签/双标签块级元素内联元素(行内元素)二、几种主要网页编码Unicode(统一码、万国码、单一码)UTF-8GB2312GBK如何让浏览器正确识别网页编码三、HTTP和HTTPS协议HTTP协议HTTPS协议浏览器中发送http请求的过程:请求方法
一、HTML#
标签分类#
空标签/单标签#
1) <meta />元信息
2) <img />图片标签
3) <br />换行标签
4) <hr />水平线
5) <link />引入标签
6) <base />base标签
闭合标签/双标签#
1) <html>页面标签</html>
2) <body>可视标签</body>
3) <head>头部标签</head>
4)<title>页面标题</title>
5) <div>盒子标签</div>
6) <p>段落标签</p>
7) <h1></h1>标题标签<h6></h6>
8) <span>空元素</sapn>
9) <em></em>斜体字体<i></i>
10) <strong></strong>加粗字体<b></b>
11) <ul>
<li>无序列表</li>
</ul>
12) <ol>
<li>有序列表</li>
</ol>
13)<dl>
<dt>儿子</dt>
<dd><女儿/dd>
</dl>
14)<a href=””>超链接</a>
15)<iframe>内联框架</iframe>
块级元素#
块级元素是指本身属性为display:block;的元素,通常用于进行大布局(大结构)的搭建。
默认情况下独占一行,宽度为父级的100%;支持设置宽高;支持上下左右的margin、padding值。
常用的块级元素有:
div 常用块级容器,也是css layout的主要标签
h1 大标题
h2 副标题
h3 三级标题
h4 四级标题
h5 五级标题
h6 六级标题
hr 水平分隔线
menu 菜单列表
ol 有序列表
ul 无序列表
li 列表项
dl 定义列表
dt 定义术语
dd 定义描述
table 表格
p 段落
form 交互表单
内联元素(行内元素)#
内联元素是指本身属性为display:inline;的元素,常于进行文字、小图标(小结构)的搭建。
与其他元素并列在一行;不支持设置宽高,宽度随内容撑开;支持左右方向的margin、padding。
常用的内联元素有:
span 常用内联容器,定义文本内区块
a 锚点
b 加粗
strong 加粗强调
i 斜体
em 斜体强调
s 中划线(不推荐使用)
strike 中划线
del 文档中已被删除的文本
br 强制换行
u 下划线
textarea 多行文本输入框
input 输入框
select 下拉列表
label input 元素定义标注(标记)
img 引入图片
sub 下标
sup 上标
big 大字体文本
small 小字体文本
二、几种主要网页编码#
Unicode(统一码、万国码、单一码)#
是一种在计算机上使用的字符编码,可以容纳世界上所有文字和符号的字符编码方案,用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。只有一个低字节的Uncode字符其实就是Latin1字符,所以Unicode字符集兼容ASCII字符。Unicode又分为:UCS-2(用两个字节编码)和UCS-4(用四个字节编码)。UCS即Universal Character Set。若规定所有的字符都使用固定的最大字节数表示,则会造成空间浪费,而且存在传输问题(Unicode用至少两个字节的整数来表示一个字符,在大端机和小端机上两个字节的顺序正好是相反的,如下图所示),因此在实际的网页编码中常使用utf-8、utf-16等变长编码方式。
UTF-8#
Unicode TransformationFormat-8bit,允许含BOM,但通常不含BOM。是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示。如果是UTF8编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包。
GB2312#
中国国家标准总局1980年发布《信息交换用汉字编码字符集》,1981年5月1日开始实施,标准号是GB2312—1980(GB就是拼音guobiao的简称)。该标准适用于汉字处理、汉字通信等系统之间的信息交换,通行于中国大陆、新加坡等地。中国大陆几乎所有的中文系统和国际化的软件都支持GB2312。GB2312采用双字节编码,其中包含汉字6763个和非汉字图形字符682个。所有字符集分成94个区,每区有94个位。每个区位上只有一个字符,因此可用所在的区和位来对汉字进行编码,称为区位码。把十六进制的区位码加上0x2020,就得到国标码。国标码加上0x8080,就得到常用的计算机机内码(即计算机内存储的表示字符的整数)。所以区位码加上0xA0A0就得到了计算机内码。譬如、汉字“啊”是GB2312字符集中的第一个汉字,它的区位码为0x1001,如下图所示,0x1001加上0xA0A0就是0xB0A1,这就是“啊”的计算机内码。
GBK#
GBK是国家标准GB2312基础上扩容后兼容GB2312的标准。GBK的文字编码是用双字节来表示的,即不论中、英文字符均使用双字节来表示,为了区分中文,将其最高位都设定成1。GBK包含全部中文字符,是国家编码,通用性比UTF8差,不过UTF8占用的数据库比GBK大(UTF8表示中文需要比GBK/BIG5版本多占用50%的存储空间)。因此,对于中文较多的网站,适宜用GBK编码节省空间,而对于英文较多的网站,适宜用UTF-8节省空间。
Python3中的字符串默认编码为unicode,因此GBK、GB2312等与UTF8之间需通过unicode编码进行相互转换:GBK、GB2312——Unicode——UTF8;UTF8——Unicode——GBK、GB2312,即先解码为unicode,再编码为目标码。可以使用Windows记事本的“另存为”,可以在GBK、Unicode、Unicode big endian和UTF-8这几种编码方式间相互转换。在程序中可分别使用字符串的encode和decode方法进行编码和解码。使用编码名称作为这两个方法的参数时不区分大小写,如gbk和GBK都可以。此外,utf8也可写成utf-8。
如何让浏览器正确识别网页编码#
一般在网页中都会有类似如下的标签设置来指定编码:,指示此网页的字符集编码是GB2312(或者UTF-8、GBK等)。网页编码也可能直接作为meta标签的charset属性值,如。
页面有时候指定了编码为什么有时会出现乱码?这可能是页面申明编码与文件本身编码不一致,更多时候是以错误编码打开页面然后保存导致的,或者是用某些FTP软件直接在线修改文件,比如CuteFTP,由于软件编码配置错误而导致转换错了编码。这时候使用window的记事本打开,用“另存为”保存为对应的编码即可解决问题。
在windows操作系统上使用IE作为浏览器时,常常会发生这样的问题:在浏览使用UTF-8编码的网页时,浏览器无法自动识别该页面所用的编码,即使网页已经声明过编码格式:,由此造成某些含有中文UTF-8编码的页面产生空白输出。如果使用的是Firefox、Sarafi的浏览器这不会造成这个问题,这是由于IE解析网页编码时以HTML源码中的设置优先,而后才是HTTP header内的讯息,而mozilla系列的浏览器则刚刚相反。
由于UTF-8为3个字节表示一个汉字,而普通的GB2312或BIG5是两个字节。页面输出时,由于上述原因,使浏览器解析、输出
三、HTTP和HTTPS协议#
HTTP协议#
HyperText Transer Portocol 超文本传输协议,用于Web浏览器和网站服务器之间传递信息,它是基于请求与响应的、无状态的应用层的协议,通常基于TCP的连接方式。
服务器端口:
80
HTTPS协议#
是HTTS协议的加密版本,在HTTP下加入了SSL层。服务器端口:
443
浏览器中发送http请求的过程:#
1)当用户在浏览器的地址栏中输入一个URL并按回车键之后,浏览器会向HTTP服务器发送HTTP请求。
2)当我们在浏览器输入URL http://www.baidu.com 的时候,浏览器发送一个Request请求去获取 http://www.baidu.com 的html文件,服务器把Response文件对象发送回给浏览器。
3)浏览器分析Response中的 HTML,发现其中引用了很多其他文件,比如Images文件,CSS文件,JS文件。 浏览器会自动再次发送Request去获取图片,CSS文件,或者JS文件。
4)当所有的文件都下载成功后,网页会根据HTML语法结构,完整的显示出来。