WEB发展 |
WEB的发展
1990年,基于TCP协议的HTTP协议和浏览器诞生,在应用层使用文本跨网络在不同进程间传输数据,最后在浏览器中将服务器端返回的HTML渲染出来,由此,网页开发诞生。
网页是存储在WEB服务器端的文本文件,浏览器发起HTTP请求后,到达WEB服务器程序后,服务程序根据URL读取对应的HTML文件,并封装成HTTP响应报文返回给浏览器。
起初网页开发主要是指HTML、CSS等文件制作,目的就是为了显示文字或图片,可以通过超链接跳转到另一个HTML并显示其内容。后来,网景公司意识到让网页动起来十分重要,研发出JavaScript语言,JavaScript是可以在浏览器使用JS引擎执行的脚本语言,可以让网页元素动态变化,网页动起来了。先如今的WEB前端开发:HTML、CSS和JavaScript。
为了让网页可以动起来,微软使用ActiveX技术、SUN的Applet都可以在浏览器中执行代码,但都有安全性问题。目前WEB服务器端将浏览器(客户端)请求的资源直接组成成HTML,然后浏览器直接对收到HTML文件进行渲染即可。==>因此计算处理等主要操作有client转移至后端WEB server,因此目前的WEBserver变得十分庞大。
为了解决上述问题,早期出现了CGI(Common Gateway Interface)通用网关接口协议,通过浏览器中输入URL直接映射到一个服务器端的脚本程序执行,这个脚本可以查询数据库并返回结果给浏览器端,这种将用户请求使用程序动态生成的技术,称为动态网页技术。先后出现了ASP、PHP、JSP等技术,这些技术使用不同的语言编写的程序都运行在服务器端,所有称为WEB后端编程。有一部分程序员还是要编写HTML、CSS、JavaScript这些代码运行在浏览器端,称为WEB前端编程。合起来称为Browser/Server编程,即B/S编程。
关于CGI:https://blog.csdn.net/wdirdo/article/details/103137453
HTML |
HTML:htyper text markup language 即超文本标记语言,不同于编程语言。
超文本就是超出纯文本的范畴,即超文本中可以含有例如描述文本的颜色、大小、字体等信息,或使用图片、音频、视频等非文本内容。
HTML由一个个标签组成,这些标签各司其职,有的提供网页信息,有的负责图片,有的负责网页布局。
html文档树形结构图:
数:下面的每一个子节点只能有一个父节点。
- 二叉树:一个父节点最多只能有两个子节点。
图/网:下面的每一个子节点不只一个父节点。
注:HTML是数据和显示数据格式的混合体!(爬虫爬的是数据,爬虫只要数据)
- HTML5
<!DOCTYPE HTML> #文档说明
<html ...> #根标签
#head部分浏览器知道就行
#放置一些脚本和样式表均放置于head部分
<head> #主站对外的话,元数据有作用
<meta charset="UTF-8">
<title>首页</title> #标题栏
</head>
<body> #浏览器渲染出来呈现给我们看的内容是body部分
<h1>WOW</h1>
<video width="320" height="240" controls="controls">
<source src="movie.ogg" type="video/ogg">
<source src="movie.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
</body>
</html>
- 浏览器就是可以渲染和显示HTML格式的客户端,浏览器与WEB server通信:基于HTTP协议、HTTP协议基于TCP协议(三次握手、四次挥手)
==>(nginx的长连接等相关配置)
==> HTTP响应数据报文分为报文头部和报文实体:
…
超文本需要显示,就得有个软件能够呈现出超文本定义的排版格式,例如显示图片、表格,显示字体的大小、颜色,这个软件就是浏览器。
浏览器主要的两大核心:
- ①渲染引擎
- ②JS引擎
超文本的诞生是为了解决纯文本不能格式显示的问题,是为了好看、美观,但是只有通过网络才能分享超文本的内容,==>制定了HTTP协议。
如今,HTML依然是互联网展示数据的最主要的方式,广泛的应用在PC端和移动端。
CSS |
CSS (层叠样式表,Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。
JavaScript |
JS引擎 |
什么是JS引擎?
JS引擎就是能够将 Javascript 代码处理并执行的运行环境。
JS引擎的组成:
1.编译器:主要工作是将源代码编译成抽象语法树,在某些引擎可能还包含了将抽象语法树转换成中间表示(字节码)。
2.解释器:在某些引擎中,解释器主要是接收字节码,解释执行这个字节码,同时也依赖垃圾回收机制等。
3.JIT工具:一个能够 JIT 的工具,将字节码或者抽象语法树转换成本地代码。
4.垃圾回收器和分析工具:它们负责垃圾回收和收集引擎中的信息,帮助改善引擎的性能和功效
V8引擎 |
V8引擎不是解释执行,而是本地编译,在V8引擎做了很多优化,JS程序在其上运行堪比本地二进制程序。
基于V8引擎,Nodejs诞生,Nodejs提供了大量的库,从此便可以在服务器真正大规模的使用JavaScript编程,因此JS也可以编写后端程序。
Nodejs编写的程序部署需要使用V8引擎,V8引擎被装载到node里面,即使用node处理Nodejs编写的程序。
静态网页技术 |
静态文件:.html .txt .jpg .js .css .mp3 .avi(等文件后缀名)
注:区分动态和静态资源是根据在服务端什么形式至客户端就是什么形式,这就是静态资源,而不是根据视觉上的动和静来区分的。
前端技术:HTML、JS、CSS(这些代码在浏览器中运行)
动态网页技术 |
网页的内容是后端根据用户此浏览器端提交的请求不同,通过后端程序将内容临时拼凑好,生成HTML,返回浏览器,通过浏览器渲染呈现。常见的有ASP和Dotnet、JSP、PHP、Nodejs和等、目前企业级开发第一把交椅JSP(==> WEB部署得最多的Tomcat)