2018年4月24日 学习大约3小时 今天目标为复习html各个标签的含义,以及学习html5新增加标签。特别是语义化标签
另外,强烈,墙裂,墙裂推荐MDN,这是一个非常权威的网站,对HTML,CSS,JAVACRIPT等都有非常全面的文档。建议大家可以从这上面学习!
通过今天的学习,对浏览器(client)访问网页(server)的过程有了更深刻的理解。
比如说我们访问 百度 ,首先浏览器会发送请求(request)至百度的服务器,使用Chrome 调试工具可看到请求的内容,即请求头。如下图
请求头告诉百度服务器相关参数,比如
Accept 告诉服务器 可以接受 text/html,xml,image等等类型的内容
Accept-Encoding 告诉服务器可以使用gzip压缩数据
Accept-Language 告诉服务器接受 zh-CN 即简体中文
Cache-Control 告诉服务器缓存策略,no-cache 会问服务器,上次我们访问的内容更新了吗,如果没有过期就从缓存加载,更改了就发送新的内容。 比如我们于8点访问了百度。8:30的时候再次访问,如果百度服务器返回的内容被修改过(比如添加了新功能等),那么就会发送新的过来。 如果没有更新的话可以从缓存里加载,就避免了同一文件的多次下载
Connection 获得到了服务器发送的所有数据后,是选择中断连接(close)还是保持连接(keep-alive) ,具体涉及到计算机网络TCP过程,晚点开一个专题介绍
Host 即要访问的主机名,通过DNS解析得到百度服务器的IP地址
Cookie 比如登录的账号密码,为了下次访问的时候不必再次登录,相关数据会存在cookie中,请求数据时,把cookie发给服务器,即可告诉服务器你是哪位用户,免去繁琐的登录环节。 cookie中有很多隐私数据,因此应保护自己的cookie不被暴露。
服务器接收到请求头后,根据请求的参数,返回对应的内容。打开Chrome控制台,我们可以看到如下
第一行 HTTP/1.1 即HTTP协议, 状态码 200 ,即请求成功
Content-Encoding 即gzip压缩数据
Content-type 即返回了html文件,编码格式为 utf-8 。
这样,浏览器就能加载服务器发送过来的html了,配合CSS(相当于装修工具)美化,Javascript(交互,比如鼠标点击等)。 就构成了界面。
下面再说说语义化标签,个人认为语义化标签最大的作用为方便大家理解html的结构,以及搜索引擎爬虫可以根据标签(比如<main>)分配高权重。对于不重要的(如<aside>),分配底权重。
我们访问一些网页,可以看到很多网站都是直接全部使用div,十分粗暴。 但是,为了html更加优雅方便阅读,我们有必要使用语义化标签
相比而言,MDN的html结构明显直观清晰很多
下面简单介绍今天学习的几个语义化标签
<header> 一般是页眉,搜索栏等。 一般内嵌<h>标签。
<footer> 一般为页脚,比如公司信息,联系邮箱等内容一般都放在页脚
<nav> 一般指导航链接
<article> 一般指可复用的结构,比如百度贴吧的一条一条的帖子
<main> 指页面内重要主要内容的存放。
<aside> 侧边栏,一些附属信息
以上为今天学习的总结,另外,CodePen上有很多很好的作品。刚开始学习的我们可以模仿实现,增加熟练度。