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

1、网站访问

preview


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 / MangoDB
RubyRails 
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。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值