服务端技术(服务端技术栈)

如题所述

第1个回答  2024-09-18
web客户端和服务器端分别有哪些开发技术

Web客户端技术有:

1、Html,Css。(常见框架有bootstrap等)。

2、Javascript,DOM。(常见框架:Jquery,angularjs,)

服务器端常见技术有:

1、Java。

2、PHP。(世界上最好的语言)

3、Go。(Google出品)

4、Shell。

5、Python。

6、Node.js。

7、Perl。

8、Asp。

数据库:

1、Mysql。

2、MongoDB。

3、Redis。

4、Memcached。

等等

相对比较早出现的服务器端技术是

CGIC。相对比较早出现的服务器端技术是CGIC。服务器端,从广义上讲,服务器是指网络中能对其它机器提供某些服务的计算机系统(如果一个PC对服务器端外提供ftp服务,也可以叫服务器)。

计算机web技术介绍

计算机web技术介绍

Web客户端的主要任务是展现信息内容。Web客户端设计技术主要包括:HTML语言、JavaApplets、脚本程序、CSS、DHTML、插件技术以及VRML技术。下面是我给你带来的web技术相关知识,欢迎阅读!

1)HTML语言。

HTML是HypertextMarkupLanguage(超文本标记语言)的缩写,它是构成Web页面的主要工具。

2)JavaApplets,

即Java小应用程序。使用Java语言创建小应用程序,浏览器可以将JavaApplets从服务器下载到浏览器,在浏览器所在的机器上运行。JavaApplets可提供动画、音频和音乐等多媒体服务。1996年,著名的Netscape浏览器在其2.0版本中率先提供了对JavaApplets的支持,随后,Microsoft的IE3.0也在这一年开始支持Java技术。JavaApplets使得Web页面从只能展现静态的文本或图像信息,发展到可以动态展现丰富多样的信息。动态Web页面,不仅仅表现在网页的视觉展示方式上,更重要的是他可以对网页中的内容进行控制与修改。

3)脚本程序。

他是嵌入在HTML文档中的程序。使用脚本程序可以创建动态页面,大大提高交互性。用于编写脚本程序的语言主要有JavaScript和VBScript。JavaScript由Netscape公司开发,具有易于使用、变量类型灵活和无须编译等特点。VBScript由Microsoft公司开发,与JavaScript一样,可用于设计交互的Web页面。要说明的是,虽然JavaScript和VBScript语言最初都是为创建客户端动态页面而设计的,但他们都可以用于服务端脚本程序的编写。客户端脚本与服务端脚本程序的区别在于执行的位置不同,前者在客户端机器执行,而后者是在Web服务端机器执行。

4)CSS(CascadingStyleSheets),

即级联样式表。通过在HTML文档中设立样式表,可以统一控制HTML中各标志显示属性。1996年底,W3C提出了CSS的建议标准,同年,IE3.0引入了对CSS的支持。CSS大大提高了开发者对信息展现格式的控制能力,1997年的Netscape4.0不但支持CSS,而且增加了许多Netscape公司自定义的动态HTML标记,这些标记在CSS的基础上,让HTML页面中的各种要素“活动”了起来。

5)DHTML(DynamicHTML),

即动态HTML。1997年,Microsoft发布了IE4.0,并将动态HTML标记、CSS和动态对象(DynamicObjectModel)发展成为一套完整、实用、高效的客户端开发技术体系,Microsoft称其为DHTML。同样是实现HTML页面的动态效果,DHTML技术无须启动Java虚拟机或其他脚本环境,可以在浏览器的支持下,获得更好的展现效果和更高的执行效率。

6)插件技术。

这一技术大大丰富了浏览器的多媒体信息展示功能,常见的插件包括QuickTime、Realplayer、MediaPlayer和Flash等。为了在HTML页面中实现音频、视频等更为复杂的多媒体应用,1996年的Netscape2.0成功地引入了对QuickTime插件的支持,插件这种开发方式也迅速风靡了浏览器的世界。同年,在Windows平台上,Microsoft将COM和ActiveX技术应用于IE浏览器中,其推出的IE3.0正式支持在HTML页面中插入ActiveX控件,这为其他厂商扩展Web客户端的信息展现方式提供了方便的途径。1999年,Realplayer插件先后在Netscape和IE浏览器中取得了成功,与此同时,Microsoft自己的媒体播放插件MediaPlayer也被预装到了各种Windows版本之中。同样具有重要意义的还有Flash插件的问世:20世纪90年代初期,JonathanGay在FutureWave公司开发了一种名为FutureSplashAnimator的二维矢量动画展示工具,1996年,Macromedia公司收购了FutureWave,并将JonathanGayde的发明改名为我们熟悉的Flash。从此,Flash动画成了Web开发者表现自我、展示个性的最佳方式。

7)VRML技术。Web已经由静态步入动态,并正在逐渐由二维走向三维,将用户带入五彩缤纷的虚拟现实世界。VRML是目前创建三维对象最重要的工具,它是一种基于文本的语言,并可运行于任何平台。

Web服务端技术

与Web客户端技术从静态向动态的演进过程类似,Web服务端的开发技术也是由静态向动态逐渐发展、完善起来的。Web服务器技术主要包括服务器、CGI、PHP、ASP、ASP.NET、Servlet和JSP技术。

1)服务器技术。

主要指有关Web服务器构建的基本技术,包括服务器策略与结构设计、服务器软硬件的.选择及其他有关服务器构建的问题。

2)CGI(CommonGatewayInterface)技术,

即公共网关接口技术。最早的Web服务器简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HTML文件返回给浏览器。CGI是第一种使服务器能根据运行时的具体情况,动态生成HTML页面的技术。1993年,NCSA(NationalCenter佛日SupercomputingApplications)提出CGI1.0的标准草案,之后分别在1995年和1997年,制定了CGI1.1和1.2标准。CGI技术允许服务端的应用程序根据客户端的请求,动态生成HTML页面,这使客户端和服务端的动态信息交换成为了可能。随着CGI技术的普及,聊天室、论坛、电子商务、信息查询、全文检索等各式各样的Web应用蓬勃兴起,人们可以享受到信息检索、信息交换、信息处理等各更为便捷的信息服务了。

3)PHP(PersonalHomePageTools)技术。

1994年,RasmusLerdorf发明了专用于Web服务端编程的PHP语言。与以往的CGI程序不同,PHP语言将HTML代码和PHP指令合成为完整的服务端动态页面,Web应用的开发者可以用一种更加简便、快捷的方式实现动态Web功能。

4)ASP(ActiveServerPages)技术,

即活动服务器页面技术。1996年,Microsoft借鉴Php的思想,在其Web服务器IIS3.0中引入了ASP技术。ASP使用的脚本语言是我们熟悉的VBScript和Javascript。借助MicrosoftVisualStudio等开发工具在市场上的成功,ASP迅速成为Windows系统下Web服务端的主流开发技术。

5)ASP.NET技术。

由于它使用C#语言代替ASP技术的JavaScripe脚本语言,用编译代替了逐句解释,提高了运行效率,ASP.NET是建立.NETFramework的公共语言运行库上的编程框架,可用于在服务器上生成功能强大的Web应用程序,代替以前在WEB网页中加入ASP脚本代码,使界面设计与程序设计以不同的文件分离,复用性和维护性得到提高,已经成为面向下一代企业级网络计算的Web平台,是对传统ASP技术的重大升级和更新。

6)Servlet、JSP技术。

以Sun公司为首的Java阵营于1997和1998年分别推出了Servlet和JSP技术。JSP的组合让Java开发者同时拥有了类似CGI程序的集中处理功能和类似PHP的HTML嵌入功能,此外,Java的运行时编译技术也大大提高了Servlet和JSP的执行效率。Servlet和JSP被后来的JavaEE平台吸纳为核心技术。

;

服务端技术实战系列——Kafka篇

一.概念原理

[if!supportLists]1.?[endif]主题(topic):主题是对消息的分类。

[if!supportLists]2.?[endif]消息(message):消息是kafka通信的基本单位。

[if!supportLists]3.?[endif]分区(partition):一组消息对应一个主题,一个主题对应一个或多个分区。每个分区为一系列有序消息组成的有序队列;每个分区在物理上对应一个文件夹。

[if!supportLists]4.?[endif]副本(replica):每个分区有一个或多个副本,分区的副本分布在集群的不同代理(机器)上,以提高可用性;分区的副本与日志对象是一一对应的。

[if!supportLists]5.?[endif]Kafka只保证一个分区内的消息有序性,不保证跨分区消息的有序性。消息被追加到相应分区中,顺序写入磁盘,效率非常高。

[if!supportLists]6.?[endif]Kafka选取某个某个分区的一个副本作为leader副本,该分区的其他副本为follower副本。只有leader副本负责处理客户端读/写请求,follower副本从leader副本同步数据。

[if!supportLists]7.?[endif]任何发布到分区的消息都会追加到日志文件的尾部,每条消息在日志文件中的位置都对应一个按序递增的偏移量;偏移量在一个分区下严格有序。

[if!supportLists]8.?[endif]Kafka不允许对消息进行随机读写。

[if!supportLists]9.?[endif]新版消费者将消费偏移量保存到kafka内部的一个主题中。

[if!supportLists]10.?[endif]Kafka集群由一个或多个代理(Broker,也称为kafka实例)构成。可以在一台服务器上配置一个或多个代理,每个代理具有唯一标识broker.id。

[if!supportLists]11.?[endif]生产者将消息发送给代理(Broker)。

[if!supportLists]12.?[endif]消费者以拉取(pull)方式拉取数据,每个消费者都属于一个消费组。

[if!supportLists]13.?[endif]同一个主题的一条消息只能被同一个消费组下的某一个消费者消费,但不同消费组的消费者可以同时消费该消息。

[if!supportLists]14.?[endif]消息广播:指定各消费者属于不同消费组;消息单播:指定各消费者属于同一个消费组。

[if!supportLists]15.?[endif]Kafka启动时在Zookeeper上创建相应节点来保存元数据,元数据包括:代理节点信息、集群信息、主题信息、分区状态信息、分区副本分配方案、动态配置等;

[if!supportLists]16.?[endif]Kafka通过监听机制在节点注册监听器来监听节点元数据变化;

[if!supportLists]17.?[endif]Kafka将数据写入磁盘,以文件系统来存数据;

[if!supportLists]18.?[endif]生产环境一般将zookeeper集群和kafka集群分机架部署;

[if!supportLists]二.[endif]KafkaProducer

配置:

/**

?*xTestProxy——KafkaConfigConstant

?*

?*@author?ZhangChi

?*@date?2018年6月20日---下午5:50:44

?*@version?1.0

?*/

public?class?KafkaConfigConstant{

public?static?final?StringKAFKA_CLUSTER?="fa-common1.hangzhou-1.kafka.internal.lede.com:9200,fa-common2.hangzhou-1.kafka.internal.lede.com:9200,fa-common3.hangzhou-1.kafka.internal.lede.com:9200";

}

生产者配置:

/**

?*xTestProxy——HttpKafkaProducerFactory

?*

?*@author?ZhangChi

?*@date?2018年6月11日---下午2:37:51

?*@version?1.0

?*/

public?class?HttpKafkaProducerFactory{

//真正的KafkaProducer仅有一份

private?static?KafkaProducerkafkaProducer?=null;

private?static?Propertiesproperty;

public?static?KafkaProducergetKafkaProducer(){

if?(kafkaProducer?==null){

synchronized?(HttpKafkaProducerFactory.class){

if?(kafkaProducer?==null){

property?=buildKafkaProperty();

kafkaProducer?=new?KafkaProducer(property);

}

}

}

return?kafkaProducer;

}

public?static?PropertiesbuildKafkaProperty(){

Propertiesprops?=new?Properties();

props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,KafkaConfigConstant.KAFKA_CLUSTER);

props.put(ProducerConfig.ACKS_CONFIG,"all");

props.put(ProducerConfig.RETRIES_CONFIG,0);

props.put(ProducerConfig.BATCH_SIZE_CONFIG,16384);

props.put(ProducerConfig.BUFFER_MEMORY_CONFIG,33554432);

props.put(ProducerConfig.LINGER_MS_CONFIG,1);

props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,"org.apache.kafka.common.serialization.StringSerializer");

props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,

"org.apache.kafka.common.serialization.StringSerializer");

return?props;

}

}

生产者线程组:

/**

?*xTestProxy——HttpKafkaProducerThread

?*多线程每次new一个实例

?*

?*@author?ZhangChi

?*@date?2018年6月25日---下午2:09:39

?*@version?1.0

?*/

public?class?HttpKafkaProducerThreadimplements?Runnable{

private?static?Loggerlogger?=LoggerFactory.getLogger("HttpKafkaProducerThread");

private?final?StringKAFKA_TOPIC?=KafkaConstant.HTTP_REQ_RESP_TOPIC;

private?StringkafkaMessageJson;

private?KafkaProducerproducer;

public?StringmessageType;

public?StringoriginalMessage;

private?static?KafkaMessagekafkaMessage?=new?KafkaMessage();

public?HttpKafkaProducerThread(KafkaProducerproducer,StringmessageType,StringoriginalMessage){

this.producer?=producer;

this.messageType?=messageType;

this.originalMessage?=originalMessage;

}

@Override

public?void?run(){

//TODO?Auto-generatedmethodstub

/*1.构建kafka消息*/

kafkaMessageJson?=generateKafkaMessage(this.messageType,this.originalMessage);

/*2.发送kafka消息*/

if?(kafkaMessageJson?!=null?!StringUtils.isEmpty(kafkaMessageJson)){

logger.info("createmessagestart:"?+kafkaMessageJson);

producer.send(new?ProducerRecord(this.KAFKA_TOPIC,kafkaMessageJson));

}else?{

logger.info("kafkaMessageJsonisnull!");

}

}

private?StringgenerateKafkaMessage(StringmessageType,StringoriginalMessage){

if?(StringUtils.isBlank(messageType)||StringUtils.isBlank(originalMessage)){

return?null;

}

kafkaMessage.setMessageId(KafkaMessageUtils.generateId());

kafkaMessage.setMessageTime(KafkaMessageUtils.generateTime());

kafkaMessage.setMessageType(messageType);

kafkaMessage.setMessage(originalMessage);

StringkafkaMessageToJson?=null;

try?{

kafkaMessageToJson?=KafkaMessageUtils.objectToJson(kafkaMessage);

}catch?(JsonProcessingExceptione){

//TODO?Auto-generatedcatchblock

e.printStackTrace();

}

kafkaMessageJson?=kafkaMessageToJson;

return?kafkaMessageToJson;

}

}

[if!supportLists]三.[endif]KafkaConsumer

消费者配置:

private?static?PropertiesbuildKafkaProperty(){

Propertiesproperties?=new?Properties();

//测试环境kafka的端口号是9200

properties.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG,KafkaConfigConstant.KAFKA_CLUSTER);

//消费组名称

properties.put(ConsumerConfig.GROUP_ID_CONFIG,KafkaConfigConstant.GROUP_ID);

properties.put(ConsumerConfig.CLIENT_ID_CONFIG,"test");

//从头消费

properties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG,"earliest");

//自动提交偏移量

properties.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG,"true");

//时间间隔1s

properties.put(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG,"10

logo设计

创造品牌价值

¥500元起

APP开发

量身定制,源码交付

¥2000元起

商标注册

一个好品牌从商标开始

¥1480元起

公司注册

注册公司全程代办

¥0元起

    官方电话官方服务
      官方网站八戒财税知识产权八戒服务商企业需求数字市场

服务端技术(服务端技术栈)
CGIC。相对比较早出现的服务器端技术是CGIC。服务器端,从广义上讲,服务器是指网络中能对其它机器提供某些服务的计算机系统(如果一个PC对服务器端外提供ftp服务,也可以叫服务器)。计算机web技术介绍 计算机web技术介绍 Web客户端的主要任务是展现信息内容。Web客户端设计技术主要包括:HTML语言、JavaApplets、脚本程序、...

技术栈什么意思
技术栈是IT里的一种术语,某项工作或某个职位需要掌握的一系列技能组合的统称。technologystack技术栈一般来说是指将N种技术互相组合在一起(N大于1),作为一个有机的整体来实现某种目的。也可以指掌握这些技术以及配合使用的经验。技术是制造一种产品的系统知识,所采用的一种工艺或提供的一项服务,不论...

什么是技术栈?
技术栈(Technology Stack)是指用于开发和运行一个应用程序的一些技术、框架和工具的集合。虫洞栈 技术栈的具体内容取决于应用程序的类型、需求和开发语言等因素,一般包括以下几个方面:操作系统:如Windows、Linux、macOS等。开发语言:如Java、Python、JavaScript、C#等。后端框架:如Spring、Django、Flask、...

技术栈是什么意思
技术栈是IT行业里的一种术语,是某项工作或某个职位需要掌握的一系列技能组合的统称。一般来说是指将N种技术互相组合在一起(N>1),作为一个有机的整体来实现某种目的或功能。也可以指掌握这些技术以及配合使用的经验。例如,一个基本的web应用程序可能包括一系列技术,如操作系统、web服务器、数据库...

技术栈是什么意思?
+ spring + linux + mysql等等,这些技术就可以称为技术栈。另外说法 还流行一个说法,是Full Stack (全栈),简单地说是万金油,说得具体一点就是前端、后台、存储、架构等多种技术都懂一点。这里的“栈”就是英文的stack的意思(一些东西堆叠在一起),掌握不同种类技术更有概括性的一种说法。

技术栈是什么意思?
技术栈,即信息技术领域中的一个术语,指的是为了实现特定目标或功能,所需掌握的一系列技能的组合,通常涉及多个技术的集成使用。这些技术并非孤立,而是如同一块积木,相互配合构建一个功能完整、高效运行的解决方案。以开发医疗管理系统为例,可能需要掌握包括html、css、javascript、jquery、springmvc、...

技术栈什么意思
技术栈在信息技术领域中扮演着至关重要的角色,它是个综合概念,将一系列技术紧密结合,形成一个有序的框架,以实现特定的项目或业务目标。这个框架不仅包括了各种技术工具,如编程语言、数据库管理系统、框架等,还包括了开发者对这些技术的深度理解和熟练运用,即实际操作和配合经验。技术,作为一个广泛的...

技术栈是什
技术栈,即信息技术领域中的一项关键概念,它是指在特定工作或职位中,所需掌握的一系列技能集合,通常这些技能相互结合,形成一个协同工作的整体,以达成特定目标。它涵盖了全栈开发,即一个人需要具备前端设计、后端开发、数据库管理以及架构设计等多方面的知识和经验,形象地说,就是像万能胶水,能够处理...

技术栈是什么意思
技术栈是指一系列技术的集合,这些技术可以涵盖不同的领域和层次。它通常包括编程语言、框架、工具、数据库等,用于实现软件开发、网站设计、系统运维等任务的技术能力集合。一个人的技术栈会体现他在某一领域的技术水平和他所拥有的专业技能。一个团队的技术栈则会决定团队在不同技术领域的竞争力和能力...

什么是技术栈
技术栈指的是一系列技术的集合,通常包括开发工具、编程语言、框架、库、平台和系统等方面。这些技术组合在一起,构成了开发者进行软件开发和项目管理的能力基础。详细解释如下:技术栈的概念 技术栈是一个较为宽泛的概念,它涵盖了开发者在解决软件问题或构建软件产品时所需的一系列技能和工具。简单地说...

相似回答
大家正在搜