一些名词:网站访问流程,HTML,css,XHTML,SQL,PHP,ASP,WEB Service

    xiaoxiao2021-03-25  54

    1、网站访问

    2、HTML+css

    电脑拿到一个HTML文件,接下来通过<link>,@import等加载过来css样式。先生成一个DOM树,再生成一个css样式的树。

    浏览器会将这两个树进行结合,生成最终的渲染树,根据这个树把页面画出来。

    3、XHTML与HTML5

    网页之间需要建立一套标准,规定可以写什么标签种类,标签又可以设置哪些属性等等。

    HTML5: 一个比较新的标准

    XHTML: HTML与近亲xml杂交的品种,对语法要求严格,为了兼容XML,语法跟HTML有不同。

    4、Web Server 与Web Service

    ①http协议

    浏览器给服务器发请求,服务器进行响应,都需要一个通用写法(即需要一个协议)——http协议

         e.g. 状态码200 OK ,卸载响应里,代表这个东西我有

                状态码404 NOT Found ,代表服务器中没找到你要的东西

    ②http响应

    header + body 构成。

    header中要说明type,及发过来文件的类型,是文本还是图片,还是视频

    写header内容的工作是Web Server

    body内容即为HTML文件内容,当服务器找到你要的页面之后直接拿来放在body中。

    ③Web Server

    首先,Server,即有实体的

    Web Server的最主要工作:提供Web Service

    Service,即不是实体,是一种服务,一种协议+格式标准体系,用来与各种服务器之间进行交互。

    客户端 与 服务器 的交互的主体,客体,载体五花八门,所以需要一种统一的service格式

       ·服务器可以使大型主机也可以使自己的小电脑,只要能跑相应的服务端程序就可以

       ·客户端可以是各种APP,可以运行在电脑,手机·····

        ·有的时候交互不仅仅是传已有的HTML文件,还需要经过一定逻辑处理之后生成的字符串、封装的数据

    除了提供Web Service,Web Server还提供缓存,平衡负载等功能

    常见的Web Server:Apache,Nginx,IIS  (这些都是大公司做好的可以直接用它们的)

    也可以用工具定制一个,例如node.js

    由于Web Server需要较好的性能,所以一般还是用C/C++/JAVA更多一些

    5、PHP,脚本服务器,Web FrameWork

    现代服务器除了可以完成 “接请求——发文件” 这种最基本的工作以外,还可以处理用户上传的文件,并且接收用户的请求

    对服务器里的文件进行操作。

        所以—— 服务器端也需要有代码啦,这就是服务器脚本

    其实之前讲的Web Server中的功能,也主要由服务器脚本程序来做

       e.g. 同一个网站,用户登录前与登陆后,网页显示会有不同,例如会加载出用户头像啊,名称啊之类的绘制在页面上

              这就是服务器脚本处理的结果

    实际上,服务器脚本就是写了一个通用接口(CGI)程序,但是这种接口程序可以用各种各样的编程语言来实现,

    PHP就是一种常见的用来写服务器脚本的语言。其他的还有ASP.NET,还有JSP

    为了方便,在写服务器脚本的时候,还会一起连着写一个同语言的Web FrameWork  来处理细节,防御攻击,提供一些

    跨站的接口之类的,Web FrameWork也有很多现成的可以直接拿来用,举例见后文“一些名词”。

    6、一个完整的网站访问过程

    下图是一个最基本的访问过程,实际上还会在这个流程中,各个部分中继续添加一些新的技术,具体见后文

    7、一些名词

    前端:HTML+css+JS   (很固定)

    后端:服务器脚本+Web FrameWork+数据库  (每种都有n多选择,可以任意搭配)

    服务器脚本 Web FramenWork 数据库 PythonQuora / Tornado / DjangoMy SQL / MangoDBRubyRails Node.jsExpress 

    8、几种常见的后端搭配框架

    LAMP = Linux + Apache + MySQL + PHP  (最常见最普通的搭配)

    P还可能是Python或Perl。有时候L会改成W=Windows。也就是服务器上的操作系统是 Linux,Web Server 用 Apache,数据库用 MySQL,服务器脚本用 PHP,这些都是开源技术,网站起步时用起来的成本会比较低,所以是普通网站里非常常见的架构。 J2EE =  UNIX + Apache + Tomcat (将JSP转换成Java)+ Oracle(数据库,可选) 专供Java,企业级,稳定 ③ASP.NET = Windows Server + SQL Server +IIS 全套都是微软开发的,省事儿,构件化,可以拖拽组件来创建web页面 ④MEAN = Angular(前端的框架,具体见“框架”) + Node.js + Express + MongoDB 是一种新型的,特点,除了数据库MongoDB以外,其他所有都是用js写的

    9、MVC框架

    是一种设计理念,分为

         Model:封装数据+数据处理方法

         View:HTML展现

         Controller:响应请求,协调Model与View

    在普通的服务器脚本中加入框架,使各部分代码分工更加明确清晰

    e.g. Ruby + Rails

           Python + Django

    前端框架Angular/Backbone

    现在,对于一个前端功能、交互复杂的SPA,JavaScript代码很容易膨胀(超过10万行)。很自然地,像服务端从JSP向MVC框架转换的过程一样,前端开发也出现了大量的MVC框架,比较典型的包括BackboneJS, AngularJS, EmberJS, KnockoutJS。总的来说,MV*框架的提出是为了解决前端开发的复杂度,提供一套规则组织代码、分层(MVC),通过合理的组织和分层,前端的代码职责明确、清晰,便于开发与测试。 这种模式下,前后端的分工非常清晰,前后端的关键协作点是 Ajax 接口,规定好交互接口后,前后端工程师就可以根据约定,分头开工,开发环境中通过Mock等方式进行测试,同时在特定时间节点进行前后端集成测试。

    10、Node.js

    Node.js的出现,JavaScript开始拥有在服务端运行的能力

    这对前端工程师来说可是一个好消息,精通JavaScript的他们也能够做服务端开发了!虽然现实中并不是这样美好(服务端开发涉及的不仅仅是语言层面),但一种新的开发模式也因此兴起:浏览器端处理展现层逻辑、而服务端Controller这一层以及相关的模板渲染、路由、数据接口以及Session/Cookie先关处理实际上交给了Nodejs来做。通过Nodejs, 意味着前后端很多代码可以复用 各大浏览器的竞争,使其引擎的性能不断提升,至今Google V8引擎的性能已经足以运行大型Javascript程序。在V8之上加以网络、文件系统等内置模块,形成了如今的Node.js。

    转载请注明原文地址: https://ju.6miu.com/read-50321.html

    最新回复(0)