01_互联网基本原理和HTML入门

从“上网”说开去

1.上网就是请求数据

老师现在进行一个互联网原理的整体感知的教学,你注意,整体感知中,一些具体的细节,可能令你没有安全感(很多的知识盲点)。没有关系,老师进行的是“整体感知”,就是为了让你宏观地学习一些东西,先不要在意细节。

网页是真实的物理存在,我们现在来看一下老师购买的一个服务器的操作。


服务器

所以我们就能通过网址www.shaoshanhuan.com/aaa.html来查看这个页面。

页面

我们来看看文件夹的情况:

文件夹

www.shaoshanhuan.com/ccc/ddd.html

小问题:我们想访问www.shaoshanhuan.com/haha/xixi/hehe.html

那么请问,我们的网页应该放在哪里?

答案:放在haha文件夹中的xixi文件夹中里面。

更深入的问题:我们平时输入网址,都是www.shaoshanhuan.com , 没有后缀

实际上等价于访问了www.shaoshanhuan.com/index.html文件。

index是英语目录、列表的意思,这是默认的首页文件。

文件夹的默认文件,也是index.html

www.shaoshanhuan.com/aaa

等价于
www.shaoshanhuan.com/aaa/index.html

总结一下,一会儿我们马上展开研究:

也就是说,上网就是一个请求数据的过程。当我们输入一个网址www.shaoshanhuan.com/aaa/1.html的时候,我们的计算机将对远程服务器发出一个HTTP请求。我要请求你的aaa文件夹中的1.html文件。服务器响应了这个请求,将1.html这个网页文件,通过HTTP请求,传输到用户的计算机中。用户的浏览器,对这个文件进行渲染。

上网就是一个请求文件、回馈文件的过程,没有持久连接。

2.HTTP协议

HTTP大家肯定不陌生,一说网址,装X的人就爱说:

http://www.shaoshanhuan.com

HTTP的全称叫做Hypertext Transfer Protocal,超文本传输协议。干嘛用的?就是浏览器和服务器之间传输文件用的。(建议大家背诵简称的全名,面试的时候吓死面试官!)

HTTP是有两部分,请求request、响应response。当你输入网址的时候,此时浏览器会发出一个HTTP请求,请求服务器上的响应页面。服务器收到请求之后,会再次通过HTTP将页面传输回来。

注意:

  • 访问一个网页的时候,并不一定只有一次HTTP请求发出!如果页面上有图片、视频、音频,那么将产生更多的HTTP请求。

  • 不光输入网址能够产生HTTP请求,我们点击超级链接的时候,也能够产生HTTP请求。

Ajax课程上我们拓展学习HTTP,现在先学这么多。

服务器

3.服务器

服务器server就是计算机,也有CPU、硬盘、内存,也安装软件。可能没有显示器、鼠标、键盘(用普通计算机远程管理它)。

服务器

服务器上存放文件的,服务器要24小时开机,不能断点,一旦断点,就无法访问网站了。

我们可以通过管理软件,来远程管理服务器,比如老师演示的8U-FTP。

4.浏览器

浏览器browser,就是渲染网页的一个软件,安装在客户的电脑里面。

HTTP请求的发起、接收,都是由浏览器来完成的。

浏览器都有临时文件夹,比如IE的临时文件夹就是:

C:\Users\Danny\AppData\Local\Microsoft\Windows\Temporary Internet Files

你请求的所有网页文件,都是存放在这个临时文件夹中的。所有的网页都是在计算机本地进行渲染的。所以,有些时候,第一次打开网页速度慢,第二次打开网页速度快,这是因为第一次已经把文件传输过来了,就不用传输了。

HTML初步

HTML的全称叫做Hypertext Markup Language,超文本标记语言,是网页的文件格式。网页的格式,还有PHP、JSP、ASP等等,那么HTML是最最基本的网页文件格式。

1.纯文本

我们现在先来学习什么是“纯文本”。

拓展名的含义:

拓展名

不同的拓展名: .mp3音乐文件, .jpg 图片文件 , .docx 文档

要让我们的操作系统,显示出文件的拓展名。

显示文件拓展名
显示文件拓展名

我们来看一个实验:
1.doc和1.txt中, 都是只有“哈哈”两个字。但是doc文件,尺寸很大;而txt文件,尺寸只有4字节。
这是因为txt文件是纯文本文件,里面只有文字,没有其他的任何东西,没有样式、没有字号、没有颜色。
而doc文件,里面存放着页边距、行高、颜色、字号、字体这些信息。


文件对比

HTML文件是纯文本文件。

我们这么创建一个网页:

创建网页

创建出来一个txt文件:

创建txt

强行更改txt这个拓展名为html:


更改拓展名为html

这个html文件就是一个网页文件了。


网页文件

不要给我提什么DreamWeaver了!因为HTML文件是纯文本文件,所以任何的纯文本编辑器,都能够编写网页!

HTML的制作,不依赖于任何编辑器。

网页的制作和浏览,分别使用记事本和浏览器:

我的第一个html

2.HTML是负责描述文本语义的语言

什么是语义

我们用标签对文字添加语义:

添加语义

比如下面的文字:
刘诗诗简介
它是没有任何语义的文字。
而:
<h1>刘诗诗简介</h1>
给这几个字添加了“1级标题”的语义。

比如下面的文字,
刘诗诗,1987年3月10日出生于北京。中国内地影视女演员,毕业于北京舞蹈学院芭蕾舞专业2006届本科班。

也是没有任何语义的文字。
而:
<p>刘诗诗,1987年3月10日出生于北京。中国内地影视女演员,毕业于北京舞蹈学院芭蕾舞专业2006届本科班。</p>

给这些文字增加了“段落”的语义。

HTML不过如此,就是通过一对儿一对儿的标签,来给文本增加语义的语言。

<p> 叫做起始标签
</p> 叫做结束标签

页面渲染的时候,<h1>这些标签,是不会显示在页面上的,这就是“超”字的含义:一些文本,就是文本;而一些文本(标签),是描述别的文本语义的文本,不会照搬显示在页面上。 这种文件就是超文本文件。

也解释了什么是“标记”,就是一对儿一对儿的标签对儿。

超文本标记语言HTML: Hypertext Markup Language。

你加上h1标签之后,文本就是主标题的语义,浏览器此时会默认将h1的文字变得大、黑、粗,这个是浏览器的默认样式,和语义是无关的。浏览器会默认给一些语义的文字加上合适的样式。

但是,一定要记住,任何HTML标签,都和样式无关的,只能表达语义。

面试的时候,人家问h1什么意思啊?
错误的答案:让字变得大、黑、粗。

正确的答案:让文字加上1级标题的语义。

Sublime安装和使用方法

1.安装

再次强调,做网页和用什么软件无关。任何的纯文本编辑器,都能够制作网页;相反的,任何的能够制作网页的软件,吹破天了,本质上都是纯文本编辑器。

现在比较有名的制作网页的软件:sublime、WebStorm、Atom、DreamWeaver、NotePad++、Editplus、frontpage。

sublime是英语宏大的、壮丽的意思,冷门词汇。

sublime这个编辑器近些年非常流行,能够编辑多种语言,Java、PHP、C语言都能编写。

官网:http://www.sublimetext.com/

2.使用

sublime能够编辑很多很多语言!所以,在新建了一个文件之后,一定要记得先保存,保存的时候,要刻意地加上.html后缀。

sublime

Sublime的常见快捷键:

Ctrl+N 新建文件
Ctrl+S 保存功能。这里提一嘴,Sublime不怕突然掉电。它不是实时保存,而是实时缓存。


Sublime
  • Ctrl+F 查找
  • Ctrl+Z 撤销。Sublime提供无限次的撤销。
  • Ctrl+C 复制
  • Ctrl+V 粘贴

输入标签名,然后按tab键,能自动生成标签对儿。

  • Ctrl+Shift+D 复制当前行
  • Ctrl+X 删除当前行(和剪切是一个快捷键)
  • Ctrl+鼠标滚轮

按住鼠标滚轮,拖拽,就可以产生多行光标。

支持快速输入法,比如

p*10 然后按tab键,就能生成10个p标签。

HTML的基本骨架

直接在sublime中,输入:


html:xt

然后按tab键,如果tab键不管用,那么就按ctrl+E键,就会自动展开为:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
段落

抽象一下:

<!DTD >
<html>
   <head>
   </head>

   <body>
   </body>

</html>

接下来我们就要一行一行的讲解HTML基本骨架的含义。

1.文档声明头DTD

就是HTML第一行语句:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

所谓的DTD就是DocType Definition 文档类型定义, 也有人翻译为DocType
Declartion 文档类型声明。

HTML文件的第一行,都是这个DTD,干什么用的?这一行语句,告诉浏览器我是什么版本的HTML文件。

HTML、CSS这两个语言,官网维护者就是总部位于美国的W3C组织,简称W3。全称World
Wide Web Consortium国际万维网联盟。官网:https://www.w3.org/

中文的网站就是w3scholl.com.cn,

里面的各种DTD手册:http://www.w3school.com.cn/tags/tag_doctype.asp

HTML从诞生到现在,最新的版本HTML5。不是所有的浏览器都兼容哦,现在还有一部分人使用的浏览器过旧,所以现在很多公司还在使用HTML的上一个版本,HTML4.01。

HTML4.01又有三个小版本:

HTML4.01 Strict 严格版:不能使用font、b、u、i等等的废弃标签,不能使用框架集,结构和样式分离。

HTML4.01 Transitional 过渡版(通用版):没有那么多限制,可以使用font等废弃标签,不能使用框架集

HTML4.01 Frameset:框架集版:可以使用框架集

讲一下历史,在2007、08年之前,人们制作一个红色的标题:
<h1><font color="red">我是一个主标题</font></h1>
现在font标签已经被废弃了,改用CSS来描述页面的样式。W3C事儿多,发现HTML还不够严格。比如,标签到底是大写字母还是小写字母呀?

<H1></H1>

是对的么?

再比如,属性可不可以用单引号?
<a href=’2.html’></a>

所以,W3C为了解决这个问题,推出了XHTML版本。X表示extensional“拓展的”HTML。

在XHTML1.0中,严格规定了标签必须是小写,所有的属性都必须用双引号封闭啊,必须有结尾反斜杠……

XHTML1.0版本中,延续了HTML4.01的3个小版本:

  • XHTML1.0 Strict 严格版:不能使用font等等的废弃标签,不能使用框架集,结构和样式分离。
  • XHTML1.0 Transitional 过渡版(通用版):没有那么多限制,可以使用font等废弃标签,不能使用框架集
  • XHTML1.0 Frameset:框架集版:可以使用框架集

总结一下,一共有6种DTD。HTML4.01有3种,XHTML1.0有3种。6种版本,就有6种DTD。

按严格程度:
XHTML1.0 Strict > HTML4.01 Strict > XHTML1.0 transitionl > HTML4.01
transitionl

Sublime生成DTD,只需要更改冒号后面的词语,xs就能生成XHTML1.0 Strict版本。

Sublime生成DTD

严格版本中,font、b、u、i标签都是废弃的。而这些标签我们将来要使用它做一些“小心思”、“小创意”,所以不能一棒子打死。

如果没听懂,别废话,老老实实用html:xt就行了。只要记住,一共有6种。

HTML5是新的版本,不在设立strict、transitional、frameset等版本了。XHTML1.0随着HTML5的诞生,也没有了。这就是W3C,在啪啪啪自己打脸。

2.命名空间

在DTD下面一行,就是html标签对儿:

<html
xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

</html>

html是一个标签,xmlns是它的一个属性, xml:lang也是它的一个属性

<html 属性1=”值” 属性2=”值”>
</html>

键值对儿,键就是属性的名字,值就是属性的值。简称K-V对儿, k就是key键, v就是value值的意思。

xmlns这个属性是干嘛的呢?xmlns的全称,叫做XML NameSpace, HTML是XML中的一种,但是我们现在不准备展开说这事儿。Ajax课上会详细介绍XML这个东西。NameSpace叫做命名空间。很简单,就是你的文章里面的h1表示的是1级标题的,别人的是不是也是1级标题?所以就需要有人统一一下标准,使用的就是一个固定的网址http://www.w3.org/1999/xhtml

xml:lang="en" 表示所有的标签的语言都是英语,language

这里都是固定写法,没有别的值。

3.字符集

简体中文可以使用的字符集就两个,分别叫做GBK、UTF-8。

GBK是国标的一个意思,也称为“gb2312”,中国人制定的。

UTF-8是国际的一个字符集标准。

字符集

我们做了一个实验,都是同一个汉字,但是:

  • GBK 每一个汉字2字节
  • UTF-8 每一个汉字3字节
字符集

字符集就相当于活字印刷术里面的字的模型。

老王家的字多,所以描述“哈”字,可能是“第3个柜子里面第2层第4行第8列”

老李家的字少,所以描述“哈”字,可能是“第9层第3行第1列”

GBK中只有汉字简体(不包括少数民族文字)、绝大部分繁体字、少量片甲名、少量符号

UTF-8中有世界上所有国家中的所有文字和符号。

我们在HTML网页中,用meta来设置字符集,meta是“元”、“初始”的意思,表示元设置、初始设置。

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

这个meta是一个单标签,没有成对儿。一会儿在img标签中,我们细讲这事儿。

Sublime将默认保存utf-8字符集。

所以,HTML页面中,有两种字符集设置:

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

<meta http-equiv="Content-Type" content="text/html;charset=gb2312">

工作的时候用哪种?

  • 如果公司的网页中,没有出现怪异符号、没有出现其他国家文字(除了英语),那么要使用gb2312。因为文件尺寸小,每一个字就少1个字节。1000字就是1kb,5000字就是5kb。
  • 如果公司的网页中,有少数民族文字、韩语、阿拉伯语,那么要使用UTF-8。因为文字全。

4.关键字和页面描述

浏览器抓取我们的页面,会在旁边显示一小段页面描述。

 <meta name="description" content="保持饥饿 保持愚蠢">

抽象出来语法:

<meta name=”description” content=”页面描述” >

description 描述的意思, content内容。

这个东西显著提升SEO, SEO就是Search Engine Optimization,搜索引擎优化。就是少花钱,让搜索引擎能带来更多的流量,让更多人点击。

可以设置页面关键字,搜索引擎会抓取这些关键字:

<meta name="keywords" content="手机,电脑,冰箱,彩电">

搜索引擎就知道我们的网站是干什么的了,就能相应的排名提升。

5.title

<title>页面描述和关键词</title>
title

HTML页面的特点

1.HTML对换行、TAB缩进、空格不敏感

<body>
<h1>我是一个主标题</h1>
<p>我是一个段落</p>
</body>

等价于:

<body>
    <h1>我是一个主标题</h1>
    <p>我是一个段落</p>
</body>

等价于:

<body><h1>我是一个主标题</h1><p>我是一个段落</p></body>

也就是说,HTML现在你就感觉到了,不仅仅负责描述语义,还描述了页面的层次。

层次是什么,就是看标签谁包裹谁,和缩不缩进无关!

如何提升页面加载速度?” “压缩代码,将HTML压缩为1行”。

2.空白折腾现象

HTML中的文字,不管有多少个空格,多少个换行,多少个缩进,都会被压缩为一个空格。

文字,现在有很多的换行、空格、缩进:

   <p>
       我是一个段落


                                                        
    </p>
我是一个段落

h和p

1.h系列标签

h表示header,标题的意思。一共有六个,有不同的语义。

h1 1级标题

h2 2级标题

h3 3级标题

h4 4级标题

h5 5级标题

h6 6级标题

标题

一般来说,页面上只能有一个h1标签,其他标签个数不定。实际上这个不是W3C的规则,而是搜索引擎的规则。

h1标签中的内容,权重非常高,搜索引擎会特别注意抓取里面的文字。搜索引擎如果看见页面有多个h1,视为作弊,降低你的权重。

h标签是个文本级标签。

2.p标签

p表示paragraph,段落。

<p>文字</p>
这个就是一个段落。

p标签你一定要注意一件事儿,p里面只能放文字、图片、表单元素。不能放其他东西。p是一个文本级标签。

这里实际上揭示了一个事情,就是标签的级别。我们HTML将所有的标签都进行了分类,只有两类:

  • 容器级标签 : 里面谁都可以装,甚至可以包裹和自己一样的标签。
  • 文本级标签 : 里面只能放文字、图片、表单元素,和其他的文本级标签。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,421评论 1 45
  • HTML基础 本文包括 HTML基本知识与结构 HTML常见标签 标签写法与嵌套的讨论 HTML、CSS、java...
    廖少少阅读 2,077评论 2 21
  • 一、学习目标 主要是学习web开发中的一些基本性的概念,例如b/s架构,web服务器,dns等等。同时还要学习HT...
    我爱开发阅读 729评论 0 7
  • 脑图复习 Html和CSS的关系 学习web前端开发基础技术需要掌握:HTML、CSS、JavaScript语言。...
    朝南而行_阅读 12,123评论 1 9
  • 引言 在日常开发Android中,很多时候会遇到和WebView打交道,对CSS HTML JS不是很清楚的话是完...
    张文靖同学阅读 2,828评论 0 11