常见的主流浏览器:
IE内核:Trident
Google内核:Webkit/Blink
火狐内核:Gecko
Safarri内核:WebKit
欧朋内核:Presto
正是因为内容不同,所以浏览器有兼容问题
浏览器访问网页原理:
1.当我们利用浏览器访问网页时,其实是有真实的物理文件传输的,浏览器会先将网页上的内容缓存到本地文件夹中,然后再渲染出来呈献给用户查看
2.平时我们在上网时会感觉到第二次访问网页时会比第一次访问网页是要快,就是因为第一次访问时已经将这个网页上的信息缓存到了本地
3.缓存文件夹中除了缓存图片以外还缓存了一些例如.js .css ,html等文件,所以可以得出一个网页不是一个文件,而是一堆文件,网页越复杂那么组成这个网页的文件就越多.
浏览器请求数据的过程
1.发送"请求报文"(请求报文中包括请求行+请求头+空行+请求体)
2.处理浏览器请求
3.将处理结果返回给浏览器
4.发送"响应报文"(响应报文中包括响应行+响应头+响应体)
5.解析浏览器返回的内容呈现给用户
什么是URL
其实我们在浏览器的地址栏中输入的这个地址就是一个URL**
- URL格式:
- http://127.0.0.1/index.html (浏览器会自动添加:80)
- http://127.0.0.1:80/index.html (完整的格式)
- URL拆分:
- http:// URL协议类型
- 127.0,0,1 服务器和IP地址
- :80 服务器的端口号
- index.html 需要访问的资源名称
- URL拆分后每个部分的作用
- .IP地址和端口号:其实IP地址它相当于我们现实生活中的地址,例如:北京市昌平区佰嘉城小区;端口号它相当于我们现实生活中的门牌号码,例如:34楼4单元201室.那么我们发现只要将地址和门牌号码结合在一起就可以得到一个详细地址.
只要我们拿到了一个详细地址,我们就可以根据这个地址找到对应的位置 - index.html作用:当我们通过IP地址和端口号找到对应的服务器之后,需要通过资源名称告诉服务器,我们需要获取服务器上的哪个资源.
结论:服务器IP地址和端口号的作用就是告诉浏览器我们需要访问的那台服务器的详细地址是什么.
- .IP地址和端口号:其实IP地址它相当于我们现实生活中的地址,例如:北京市昌平区佰嘉城小区;端口号它相当于我们现实生活中的门牌号码,例如:34楼4单元201室.那么我们发现只要将地址和门牌号码结合在一起就可以得到一个详细地址.
HTTP协议
1.HTTP是Hypertext Transfer Protocol的缩写,超文本传输
2.什么是协议? 无论什么协议他们都有一个共同点,就是用来规范/约束某一类事物
3.HTTP协议是用来规范/约束哪一类事物?
规范/约束浏览器和服务器之间如何沟通
4.沟通问题?
沟通最常见的问题是语言不通.
HTML作用
1.HTML其实是HyperText Markup Language的缩写,超文本标记语言.
2.HTML其实只有一个作用,它是专门用来描述文本的语义的,也就是说我们可以利用HTML来告诉浏览器哪些是标签,哪些是段落.
3.这些用于描述其他文本语义的文本,我们称之为标签,并且这些用于描述其它文本语义的标签将来在浏览器中是不会被显示出来的
4.所以因为HTML的这些标签是专门用来描述其它文本语义的,并且在浏览器中是不会被显示出来的,所以我们称之为这些文本为"超文本",而这些文本又叫做标签,所以HTML被称之为"超文本标记"语言
注意点:虽然我们利用h1标签描述一段文本之后,这段文本在浏览器中显示出来会被放大和加粗,看上去我们是利用HTML的标签修改了被描述的那段文本的样式.但是一定要记住,HTML的作用只有一个,它是专门用来给文本添加语义的,而不是用来修改文本的样式的.
HTML发展史
- IETF简介:
- IETF是英文Internet Engineering Task Force的缩写,中文是"物联网工程任务组"
- IETF负责定义并管理因特网技术的所有方面,包括用于数据传输的IP协议,让域名与IP地址匹配的域名系统(DNS),用于发送邮件的简单邮件传输协议(SMTP)等
- W3C简介
- W3C是英文World Wide Web Consortium的缩写,翻译过来就是W3C理事会或万维网联盟,W3C是全球互联网最据权威的技术标准化组织.
HTML基本结构详解
- 基本结构:
<!DOCTYPE html>
<html>
<head>
<meta charset = "GBK"/>
<title></title>
</head>
<body></body>
</html>
- 通过观察我们发现,HTML基本结构中所有的标签都是成对出现的,这些成对出现的标签中有一个带/有一个不带/,那么这些不带/的标签我们称之为开始标签,这些带/的标签我们称之为结束标签
-
html标签
- 作用:用于告诉浏览器这是一个网页,也就是说告诉浏览器我是一个HTML文档
- 注意点:其他所有的标签必须写在html标签里面,也就是写在html开始标签和结束标签中间
-
head标签
- 作用:
- 用于给网页添加一些适配信息
- 例如:
- 制定网页的标题/制定网页的小图片
- 添加网页的SEO相关的信息(制定网站的关键字/制定网站的描述信息)
- 外挂一些外部的css/js文件
- 添加一些适配器相关的内容
- 注意点:一般情况下,写在head标签内部的内容都不会显示给用户查看,也就是说一般情况下写在head标签内容部的内容我们都看不到
- 作用:
- <h3 id = "title12">title标签</h3>
- 作用:
- 专门用与指定网站的标题,并且这个指定的标题将来还会作为用户保存网站的默认标题.
- 注意点:title标签一定要写在head标签里面.
- 作用:
-
body标签
- 作用:
- 专门用于定义HTML文档中需要显示给用户查看的内容(文字/图片/音频/视频)
- 注意点:
- 虽然说有时候你可能将内容写到了别的地方在网页中也能看到,但是千万不要这么干,一定要将需要显示的内容写在body中.
- 一对html开始标签和结束标签中只能有一对body标签
- 作用:
字符集问题
meta标签
- meta标签的作用:就是指定当前网页的字符集
- 为什么会有乱码现象?
- 就是因为我们在编写网页的时候没有指定字符集
- 如何解决乱码现象?
- 在head标签中添加'<meta charset = "GBK"/>',就是指定字符集
- 什么是字符集?
- 字符集就是字符的集合,也就是很多字符集合在一起.正是因为如此,才导致了乱码问题.
- 在网页中我们常见的字符集有两个,GBK/UTF-8
- 所以在网页中指定字符集的意义就在于告诉浏览器我用的是哪个盒子,你应该如何去查找才能找到对应的正确的内容.
- GBK(GB2312)和UTF-8区别
- GBK(GB2312)里面存储的字符比较少,仅仅存储了汉字和一些常用外文.
- 体积比较小
- UTF-8里面存储了世界上所有的文字
- 体积比较大
- GBK(GB2312)里面存储的字符比较少,仅仅存储了汉字和一些常用外文.
- 那么在企业开发中我们应该使用哪个呢?
- 如果你的网站仅仅包含了中文,那么推荐使用GB2312,因为他的体积更小,访问速度更快
- 如果你的网站除了中文以外,还包含了一些其他国家的语言,那么推荐使用UTF-8
- 懒人推荐:不管三七二十一,一律写UTF-8即可.
- 注意点:
- 在HTML文件中指定的字符集必须和保存这个文件的字符集一致,否则还是会出现乱码
- 所以仅仅指定字符集不一定能解决乱码问题,还需要保存文件的时候,文件的保存格式必须和指定的字符集一致才能保证没有乱码问题.
DTD文档声明
什么是DTD文档声明?
由于HTML有很多个版本的规范,每个版本的规范之间又有一定的差异,所以为了让浏览器能够正确的编译/解析/渲染我们的网页,我们需要在HTML文件的第一行告诉浏览器,我们当前这个网页是哪一个版本的HTML规范来编写的.浏览器只要知道了我们是用哪一个版本的规范来编写以后,他就能够正确的编译/解析/渲染我们的网页.
DTD文档声明格式?
每一个不同版本的规范都有不同的DTD文档声明
我们只需要用HTML5的DTD文档声明,因为HTML5的DTD文档声明是向下兼容的
DTD文档声明的注意点
- 任何一个标准的HTML网页,第一行一定是DTD文档声明,也就是说DTD文档声明必须卸载第一行.
- 大小写都可以
- DTD文档声明不是一个标签
- 虽然DTD文档声明的作用是用于告诉浏览器我们的网页是用哪一个版本的标准编写的,以便于方便浏览器解析和渲染,但是浏览器并不是完全依赖这个DTD文档声明,浏览器有一套属于自己的机制,也就是说DTD文档声明不写网页也能正常运行,但是由于W3C规定第一行必须写上DTD文档声明,所以为了遵守规定,无论怎么我们都应该在第一行写上DTD文档