精华内容
下载资源
问答
  • 服务器端
    千次阅读
    2021-04-04 17:30:24

    客户端与服务器总结

    客户端(Client)是发送请求(request),服务器端(Service)是响应请求(response),返回相应的资源数据
    一般web的客户端就是浏览器(PC或移动设备),进行网页资源的请求,服务器响应之后返回数据,再由浏览器进行渲染。
    在客户端请求服务端的过程中是用各种网络协议吗?tcp、udp,三次握手,四次挥手?(待补充)
    服务器就是存放数据,文件等资源的,客户端与其进行数据的交互和数据的存储,更新。历史数据都可以保存在服务器上,由云端进行保存,所以之后可以查询自己的历史记录,数据恢复,备份等。
    一般开源免费的小型服务器是Tomcat,在制作网站demo时可以用其作为服务器进行本地访问,但是要想让别人通过点击网址链接也能访问到你的网站,可以把制作网站的文件资源部署到阿里云服务器,腾讯云服务器,或者购买属于自己的域名。

    Tomcat和Apache啥区别?
    相同点:
    两者都是Apache组织开发的,
    都有HTTP服务的功能,
    都是开源免费的
    不同点:
    Apache是专门用来提供HTTP服务以及相关配置(虚拟主机、url转发等等)的,而Tomcat是Apache组织在符合Java EE 的JSP,servelet标准下开发的JSP服务器。
    Apache是一个web服务器环境程序,启用它可以作为一个web服务器,只支持静态网页

    网断了我后来编辑的全没了,气死了。放链接吧。
    Apache是一个Web服务器环境程序,启用他可以作为Web服务器使用,不过只支持静态网页如(ASP,PHP,CGI,JSP)等动态网页的就不行。如果要在Apache环境下运行JSP的话就需要一个解释器来执行JSP网页,而这个JSP解释器就是Tomcat。

    这让我想起之前做的一个静态网站,部署到阿里云服务器的过程,是要进行远程登录服务器,把自己的代码文件放到服务器的文件夹中,通过生成的链接,其他人就可以访问了。所以要想能更改数据,动起来,还要通过后端实现。后端要有自己的数据库。目前还没搞懂。java是servelet吗?
    移动端app不知道是怎么与服务器交互的,最近在做安卓app,如果要做服务器端的话,里面要放什么呢?

    更多相关内容
  • WEB服务器端技术

    千次阅读 2022-04-11 17:39:07
    WEB服务器端技术 客户端是与用户交互的唯一接口,对于软件测试人员来说不可掉以轻心,那么服务器端又需要我们了解哪些技术呢? 事实上,对于Web系统来说,相比于客户端技术,服务器端技术更是深不可测,其各类技术...

    WEB服务器端技术

    客户端是与用户交互的唯一接口,对于软件测试人员来说不可掉以轻心,那么服务器端又需要我们了解哪些技术呢?

    事实上,对于Web系统来说,相比于客户端技术,服务器端技术更是深不可测,其各类技术,系统架构,处理方式等千变万化。服务器端的技术进步,同样要求软件测试技术的同步前进,也更加要求软件测试人员能够跟上技术的步伐,否则测试将很难开展。

    虽然服务器端技术很复杂,作为测试人员,我们不能望而却步,否则我们的测试如何进步?本节就来为大家作一个整体的梳理,将服务器端的各类技术作一个总结:

    1. WWW简介

    WWW是World Wide Web(环球信息网)的缩写,也可以简称为Web,中文名字为“万维网”。它起源于1989年3月,由欧洲量子物理实验室 CERN(the European Laboratory for Particle Physics)所发展出来的主从结构分布式超媒体系统。通过万维网,人们只要通过使用简单的方法,就可以很迅速方便地取得丰富的信息资料。 由于用户在通过 Web 浏览器访问信息资源的过程中,无需再关心一些技术性的细节,而且界面非常友好,因而 Web 在Internet 上一推出就受到了热烈的欢迎,走红全球,并迅速得到了爆炸性的发展。

    长期以来,人们只是通过传统的媒体(如电视、报纸、杂志和广播等)获得信息。但随着计算机网络的发展,人们想要获取信息,已不再满足于传统媒体那种单方面传输和获取的方式,而希望有一种主观的选择性。现在,网络上提供各种类别的数据库系统,如文献期刊、产业信息、气象信息、论文检索等等。由于计算机网络的发展,信息的获取变得非常及时、迅速和便捷。

    到了1993年,WWW 的技术有了突破性的进展,它解决了远程信息服务中的文字显示、数据连接以及图像传递的问题,使得 WWW 成为 Internet 上最为流行的信息传播方式。 现在,Web 服务器成为 Internet 上最大的计算机群,Web 文档之多、链接的网络之广,令人难以想象。可以说,Web 为 Internet 的普及迈出了开创性的一步,是近年来Internet 上取得的最激动人心的成就。

    WWW 采用的是客户/服务器结构,其作用是整理和储存各种WWW资源,并响应客户端软件的请求,把客户所需的资源传送到 Windows 95(或Windows98)、Windows NT、UNIX 或 Linux 等平台上。

    1. Web服务器

    Web服务器是离客户端最近的服务器端,主要作用包含三个方面:

    1. 监听客户端请求。为什么我们需要启动服务器,目的也就在于启动后服务器才可以开始监听80端口(或其它自定义端口),也才可以获取到客户端发来的请求,便于处理。
    2. 处理客户端请求。如果是静态资源(HTML页面或图片等),则直接将该资源从硬盘上读取进内存并直接返回给客户端;如果是动态页面(如PHP或ASP页面等),则将该请求转交给相应的脚本引擎来进行处理。
    3. 客户端与数据库之间的屏障。在三层架构中,Web服务器是夹在客户端与数据库之间,一方面用于从数据库中读取或写入数据,另外一方面也为了有效地过滤掉一些非法的访问请求,保障数据安全。

    当前比较流行的Web服务器有以下五种:

    1. Apache:由开源基金会Apache维护,开源系统软件,由C语言开发。是目前世界上最流行的Web服务器(没有之一)。由于C语言较好的跨平台特性,Apache已经在所有的服务器操作系统上实现,如Unix, Linux和Windows。并且很多应用服务器也直接内置Apache服务器,因为它性能好,足够稳定,并且功能很强大。
    2. IIS:Microsoft的Web服务器产品为Internet Information Server (IIS), IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。IIS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在IIS的平台上。IIS提供了一个图形界面的管理工具,称为 Internet服务管理器,可用于监视配置和控制Internet服务。IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它提供ISAPI(Intranet Server API)作为扩展Web服务器功能的编程接口;同时,它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。
    3. Tomcat:由开源基金会Apache维护,主要处理以Java为架构的动态页面。比如我们常见的JSP页面和Java Servlet等,均可以由Tomcat处理,并且Tomcat还部分支持SUN公司的J2EE规范,为使用J2EE架构的中小型应用提供了方便。
    4. Lighttpd:是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd 是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能,而Apache之所以流行,很大程度也是因为功能丰富,在lighttpd上很多功能都有相应的实现了,这点对于apache的用户是非常重要的,因为迁移到lighttpd就必须面对这些问题。实用起来lighttpd确实非常不错,apache主要的问题是密集并发下,不断的fork()和切换,以及较高(相对于 lighttpd而言)的内存占用,使系统的资源几尽枯竭。而lighttpd采用了Multiplex技术,代码经过优化,体积非常小,资源占用很低,而且反应速度相当快。利用apache的rewrite技术,将繁重的cgi/fastcgi任务交给lighttpd来完成,充分利用两者的优点,现在那台服务器的负载下降了一个数量级,而且反应速度也提高了一个甚至是2个数量级!lighttpd 适合静态资源类的服务,比如图片、资源文件、静态HTML等等的应用,性能应该比较好,同时也适合简单的CGI应用的场合。
    5. Nginx 是一个很牛的高性能Web和反向代理服务器,它具有很多非常优越的特性,在高连接并发的情况下,Nginx是Apache服务器不错的替代品,Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应。

    所谓的反向代理,我们可以这么理解:通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。由于外部网络上的主机并不会配置并使用这个代理服务器,普通代理服务器也被设计为在Internet上搜寻多个不确定的服务器,而不是针对Internet上多个客户机的请求访问某一个固定的服务器,因此普通的Web代理服务器不支持外部对内部网络的访问请求。当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。此时代理服务器对外就表现为一个Web服务器,外部网络就可以简单把它当作一个标准的Web服务器而不需要特定的配置。不同之处在于,这个服务器没有保存任何网页的真实数据,所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对反向代理服务器的攻击并不会使得网页信息遭到破坏,这样就增强了Web服务器的安全性。

    1. 应用服务器

    Web服务器作为一个最接近于客户端的应用,有其重要作用,必不可少。但同时,现在的网络应用越来越广泛,相应的业务逻辑也越来越复杂,一个Web服务器恐难担此重任。特别是对于业务逻辑的处理和数据库访问这一部分,对性能的要求是非常高的,我们理所当然需要一套更强大的服务器体系来进行处理,这就是应用服务器。应用服务器比Web服务器更靠后端,其目的并非监听或处理HTTP请求,而是处理复杂系统的业务逻辑和数据库访问等。

    例如,设想一个在线商店(网站)提供实时定价(real-time pricing)和有效性(availability)信息。这个站点(site)很可能会提供一个表单(form)让你来选择产品。当你提交查询(query)后,网站会进行查找(lookup)并把结果内嵌在HTML页面中返回。网站可以有很多种方式来实现这种功能。我要介绍一个不使用应用程序服务器的情景和一个使用应用程序服务器的情景。观察一下这两中情景的不同会有助于你了解应用程序服务器的功能。

    1. 情景1:不带应用程序服务器的Web服务器

    在此种情景下,一个Web服务器独立提供在线商店的功能。Web服务器获得你的请求(request),然后发送给服务器端(server-side)可以处理请求(request)的程序。此程序从数据库或文本文件(flat file,译者注:flat file是指没有特殊格式的非二进制的文件,如properties和XML文件等)中查找定价信息。一旦找到,服务器端(server-side)程序把结果信息表示成(formulate)HTML形式,最后Web服务器把会它发送到你的Web浏览器。

     简而言之,Web服务器只是简单的通过响应(response)HTML页面来处理HTTP请求(request)。

    1. 情景2:带应用程序服务器的Web服务器

    情景2和情景1相同的是Web服务器还是把响应(response)的产生委托(delegates)给脚本(译者注:服务器端(server-side)程序)。然而,你可以把查找定价的商业逻辑(business logic)放到应用程序服务器上。由于这种变化,此脚本只是简单的调用应用程序服务器的查找服务(lookup service),而不是已经知道如何查找数据然后表示为(formulate)一个响应(response)。 这时当该脚本程序产生HTML响应(response)时就可以使用该服务的返回结果了。

    在此情景中,应用程序服务器提供(serves)了用于查询产品的定价信息的商业逻辑。(服务器的)这种功能(functionality)没有指出有关显示和客户端如何使用此信息的细节,相反客户端和应用程序服务器只是来回传送数据。当有客户端调用应用程序服务器的查找服务(lookup service)时,此服务只是简单的查找并返回结果给客户端。

    通过从响应产生(response-generating)HTML的代码中分离出来,在应用程序之中该定价(查找)逻辑的可重用性更强了。其他的客户端,例如收款机,也可以调用同样的服务(service)来作为一个店员给客户结帐。相反,在情景1中的定价查找服务是不可重用的,因为信息内嵌在HTML页中了。

    总而言之,在情景2的模型中,在Web服务器通过回应HTML页面来处理HTTP请求(request),而应用程序服务器则是通过处理定价和有效性(availability)请求(request)来提供应用程序逻辑的。

    现在,XML Web Services已经使应用程序服务器和Web服务器的界线混淆了。通过传送一个XML有效载荷(payload)给服务器,Web服务器现在可以处理数据和响应(response)的能力与以前的应用程序服务器同样多了。

    另外,现在大多数应用程序服务器也包含了Web服务器,这就意味着可以把Web服务器当作是应用程序服务器的一个子集(subset)。虽然应用程序服务器包含了Web服务器的功能,但是开发者很少把应用程序服务器部署(deploy)成这种功能(capacity)(译者注:这种功能是指既有应用程序服务器的功能又有Web服务器的功能)。相反,如果需要,他们通常会把Web服务器独立配置,和应用程序服务器一前一后。这种功能的分离有助于提高性能(简单的Web请求(request)就不会影响应用程序服务器了),分开配置(专门的Web服务器,集群(clustering)等等),而且给最佳产品的选取留有余地。

    常见的应用服务器有如下两类:

    1. J2EE应用服务器:

    由SUN公司(已被Oracle收购)主导的JAVA实现了三个平台:它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition,J2ME)、适用于桌面系统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。

    目前实现J2EE技术规范的产品有5个,分别是IBM公司的WebSphere,BEA公司(已被Oracle收购)的Weblogic,Redhat公司的JBoss(前身为开源社区开发),中国金蝶公司的Apusic,开源的Resin(由CAUCHO公司开发)。它们都是非常不错的J2EE应用服务器。

    IBM WebSphere:

    WebSphere Application Server 是 一 种功能完善、开放的Web应用程序服务器,是IBM电子商务计划的核心部分,它是基于 Java 的应用环境,用于建立、部署和管理 Internet 和 Intranet Web 应用程序。 这一整套产品进行了扩展,以适应 Web 应用程序服务器的需要,范围从简单到高级直到企业级。

    WebSphere 针对以 Web 为中心的开发人员,他们都是在基本 HTTP服务器和 CGI 编程技术上成长起来的。IBM 将提供 WebSphere 产品系列,通过提供综合资源、可重复使用的组件、功能强大并易于使用的工具、以及支持 HTTP 和 IIOP 通信的可伸缩运行时环境,来帮助这些用户从简单的 Web 应用程序转移到电子商务世界。

    BEA WebLogic:

    BEA WebLogic Server 是一种多功能、基于标准的web应用服务器,为企业构建自己的应用提供了坚实的基础。各种应用开发、部署所有关键性的任务,无论是集成各种系统和数据库,还是提交服务、跨 Internet 协作,起始点都是 BEA WebLogic Server。由于 它具有全面的功能、对开放标准的遵从性、多层架构、支持基于组件的开发,基于 Internet 的企业都选择它来开发、部署最佳的应用。

    BEA WebLogic Server 在使应用服务器成为企业应用架构的基础方面继续处于领先地位。BEA WebLogic Server 为构建集成化的企业级应用提供了稳固的基础,它们以 Internet 的容量和速度,在连网的企业之间共享信息、提交服务,实现协作自动化。

    1. IIS: 首先IIS是Web服务器,其次微软公司也将其定义为.NET框架下的应用服务器。事实上微软从操作系统、服务器、数据库,再到解决方案,为IT业提供了一套相对完整的无缝集成的网络服务环境。如果我们说J2EE应用服务器是应用于JAVA平台的基础设施,那么IIS便是.NET平台的基础设施。所以,IIS完全有能力胜任应用服务器这一称呼。

    事实上,IIS不仅仅提供HTTP服务,还可以提供FTP, SMTP, 消息服务等。

    1. 脚本引擎

    我们都知道,现在的Web应用程序都是动态的,可交互的,可以根据用户输入的不同而返回不同的响应。而传统的HTML是无法支持动态网页的,因为HTML是静态的,由浏览器解析执行的。所以动态网页的处理都是在服务器端完成,由服务器端的脚本引擎处理完成后以标准的HTML格式返回给客户端。目前比较通用的脚本引擎有四种:

    1. ASP:Active Server Page,是微软IIS服务器的主要开发脚本,现在已经升级到ASP.NET,是微软.NET框架的一部分。传统的ASP页面主要使用VBScript脚本作为程序语言,再内置ASP服务器组件共同构成服务器端脚本引擎。而最新版本的ASP.NET则可以使用VBScript或JScript(注意与Javascript区别),并且与C#或VB.NET一起组成强大的服务器端开发环境。
    2. PHP:PHP 的简称原本为 Personal Home Page,后来更名为Hypertext Preprocessor,意为超文本预处理语言。是当前开源项目使用最多的脚本引擎,在sourceforge.net网站上我们可以找到很多流行的开源项目,如果该项目是以Web站点形式存在的,绝大部分都使用PHP开发。同时,PHP也同样适用于架构一些大型的应用,比如新浪网站。同时,PHP与MySQL,Apache及Linux的无缝集成,也催生了LAMP这一伟大的开源服务器平台。
    3. JSP: Java Server Page,是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
    4. RUBY:Ruby,一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言,在20世纪90年代由日本人松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada 以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby(Java 平台)、IronRuby(.NET 平台)等其他平台的 Ruby 语言替代品。
    1. 集群环境

    服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就象是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度(Load Balance – 负载均衡),也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行(Fail Over – 故障转移)。

    集群环境有多种实现方式:

    1. 硬件集群:直接使用硬件来完成,如知名的redware,可直接根据来访者的IP地址进行负载的分配与转移,并实时监听各集群节点,达到故障转移的目的。
    2. 操作系统集群:操作系统之间直接集群,属于软件级集群,通过集群分配算法实现。
    3. 应用服务器集群:应用服务器之间直接集群,根据应用服务器之间的性能指标进行负载的均衡和故障转移。
    4. 数据库集群:数据库系统直接集群,如Oracle RAC。

    其实无论何种集群方式,其核心目的就是实现负载均衡和故障转移。要实现该目的,必须要有一个负载分发器来作为系统的访问入口,当该负载分发器检测到有请求过来的时候,可根据集群节点的性能状况来决定由哪个集群节点来进行处理。同时,该负载分发器需要实时检测集群节点的健康状态,如果发现有节点无法提供服务时,将不再为其分配请求,并且及时发出警告通知系统管理员,这样就可以实现故障转移。所以说原理是很简单的,企业也完全可以自主开发软件来实现集群,只不过如何实现高可用性(High Availability)是一个比较复杂的问题,一些简单的算法可能很难保证其高负载情况下的稳定处理。

    1. 数据库

    我们每天都生活在数据库的世界,甚至都说不清楚是我们在控制数据库,还是被数据库控制。不妨来看看人们每天所做的哪些事情是跟数据库相关的:公交系统刷卡,上班打卡,银行取钱,超市消费,手机充值,天气查询,新闻阅读,户口信息,子女学籍……。

    目前数据库的类型及存在形式主要有以下四种:

    1. 文件型数据库:将数据保存在文件中,比如一个CSV的逗号分隔符文件,Excel文件,或者比较流行的XML(Extensible Markup Language - 可扩展标记语言)文件,它们都是用来描述数据的,并且由于它们都是以纯文本形式保存,其通用性和可移植性非常好,但是不太适用于大型的应用。
    2. 关系型数据库:将数据以二维表的形式保存,并且建立表与表或者列与列的各种关系,便于进行业务逻辑处理和数据展现。这也是近二十年来使用最为广泛的数据组织形式,在大型应用中显示出了巨大的优势。

    事实上,关系型数据库的数据本质上仍然保存在硬盘中,数据库管理系统只在需要时将数据文件从硬盘读取到内存中并提供给用户。当今最流行的5大数据库管理系统均为关系型数据库,如Oracle, SQLServer, MySQL, DB2, Informix。

    1. 内存型数据库:我们知道,硬盘的读写速度远慢于内存,笔者电脑上的硬盘(7200转)读写速度为80M/S左右,而内存(DDR3 1066MHz)的读写速度为6G/S,其速度相差接近80倍。即使现在的固态硬盘或者RAID 0磁盘阵列,其读写速度也就200M/S左右,仍然无法与内存的速度相提并论。于是,科学家们提出了内存型数据库,也就是将所有数据库文件全部置于内存中,这样可大大提高数据库处理速度。

    现在已经有很多数据库产品已经实现了内存数据库。比如Oracle的内存型数据库Times Ten,MySQL的MEMORY内存引擎,MemCached数据库产品等。当然,我们也需要注意到,使用这一类数据库对于系统稳定性有非常高的要求,因为内存中的数据一旦断电,将全部丢失。

    1. NoSQL:not only SQL,指的是非关系型的数据库。随着互联网Web 2.0网站的兴起,传统的关系数据库在应付Web 2.0网站,特别是超大规模和高并发的SNS类型的Web 2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。它打破了长久以来关系型数据库与ACID理论大一统的局面。NoSQL 数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。目前实现NoSQL的产品也很丰富,如Google 的BigTable与Amazon的Dynamo是非常成功的商业 NoSQL 实现。一些开源的 NoSQL 体系,如Facebook 的Cassandra, Apache 的HBase,也得到了广泛认同。从这些NoSQL项目的名字上看不出什么相同之处:Hadoop、Voldemort、Dynomite,还有其它很多。
    1. SOA

    Service-Oriented Architecture,指面向服务的体系架构。其核心在于“服务”。要了解SOA,必须首先理解什么叫Web Service (Web服务),Web Service是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。Web Service利用SOAP协议(Simple Object Access Protocol – 简单对象访问协议)和XML进行数据传输。SOAP协议又是依附于HTTP协议进行传输的,这些协议都是语言无关,平台无关的协议,所以利用Web Service,我们可以很轻易地在异构系统之间进行数据传递。

    SOA便是以Web服务为核心进行应用系统架构设计的一种全新技术,使得系统数据可以在任何平台下实现访问。

    1.  SaaS

    Software-as-a-Service,软件即服务。是随着互联网技术的发展和应用软件的成熟,而在21世纪开始兴起的一种完全创新的软件应用模式。它与“on-demand software”(按需软件),the application service provider(ASP,应用服务提供商),hosted software(托管软件)所具有相似的含义。它是一种通过Internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件,软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。对于许多小型企业来说,SaaS是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要。

    1. 云计算

    云计算概念是由Google提出的,这是一个美丽的网络应用模式。狭义云计算是指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的资源;广义云计算是指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的服务。这种服务可以是IT和软件、互联网相关的,也可以是任意其他的服务,它具有超大规模、虚拟化、可靠安全等独特功效;

    云计算(Cloud Computing)是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机技术和网络技术发展融合的产物。它旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的完美系统,并借助SaaS、PaaS、IaaS、MSP等先进的商业模式把这强大的计算能力分布到终端用户手中。Cloud Computing的一个核心理念就是通过不断提高“云”的处理能力,进而减少用户终端的处理负担,最终使用户终端简化成一个单纯的输入输出设备,并能按需享受“云”的强大计算处理能力!

    云计算的核心思想,是将大量用网络连接的计算资源统一管理和调度,构成一个计算资源池向用户按需服务。

    注:

      1. SaaS:Software-as-a-Service,软件即服务,主要以提供软件服务为核心。
      2. IaaS:Infrastructure-as-a- Servic,基础设施即服务。消费者通过Internet可以从完善的计算机基础设施获得服务。
      3. PaaS:Platform-as-a- Service,平台即服务,是指将软件研发的平台作为一种服务,以SaaS的模式提交给用户。
      4. MSP:Management Service Provider,管理服务提供商,最古老的云计算运用之一。这种应用更多的是面向IT行业而不是终端用户,常用于邮件病毒扫描、程序监控等等。

    云计算的特点:

    1. 数据安全可靠:

    首先,云计算提供了最可靠、最安全的数据存储中心,用户不用再担心数据丢失、病毒入侵等麻烦。

    很多人觉得数据只有保存在自己看得见、摸得着的电脑里才最安全,其实不然。你的电脑可能会因为自己不小心而被损坏,或者被病毒攻击,导致硬盘上的数据无法恢复,而有机会接触你的电脑的不法之徒则可能利用各种机会窃取你的数据。

    反之,当你的文档保存在类似 Google Docs 的网络服务上,当你把自己的照片上传到类似 Google Picasa Web的网络相册里,你就再也不用担心数据的丢失或损坏。因为在“云”的另一端,有全世界最专业的团队来帮你管理信息,有全世界最先进的数据中心来帮你保存数据。同时,严格的权限管理策略可以帮助你放心地与你指定的人共享数据。这样,你不用花钱就可以享受到最好、最安全的服务,甚至比在银行里存钱还方便。

    1. 客户端需求低

    其次,云计算对用户端的设备要求最低,使用起来也最方便。

    大家都有过维护个人电脑上种类繁多的应用软件的经历。为了使用某个最新的操作系统,或使用某个软件的最新版本,我们必须不断升级自己的电脑硬件。为了打开朋友发来的某种格式的文档,我们不得不疯狂寻找并下载某个应用软件。

    为了防止在下载时引入病毒,我们不得不反复安装杀毒和防火墙软件。所有这些麻烦事加在一起,对于一个刚刚接触计算机、刚刚接触网络的新手来说不啻一场噩梦!如果你再也无法忍受这样的电脑使用体验,云计算也许是你的最好选择。你只要有一台可以上网的电脑,有一个你喜欢的浏览器,你要做的就是在浏览器中键入 URL ,然后尽情享受云计算带给你的无限乐趣。   你可以在浏览器中直接编辑存储在“云”的另一端的文档,你可以随时与朋友分享信息,再也不用担心你的软件是否是最新版本,再也不用为软件或文档染上病毒而发愁。因为在“云”的另一端,有专业的 IT 人员帮你维护硬件,帮你安装和升级软件,帮你防范病毒和各类网络攻击,帮你做你以前在个人电脑上所做的一切。

    1. 轻松共享数据

    此外,云计算可以轻松实现不同设备间的数据与应用共享。

    大家不妨回想一下,你自己的联系人信息是如何保存的。一个最常见的情形是,你的手机里存储了几百个联系人的电话号码,你的个人电脑或笔记本电脑里则存储了几百个电子邮件地址。为了方便在出差时发邮件,你不得不在个人电脑和笔记本电脑之间定期同步联系人信息。买了新的手机后,你不得不在旧手机和新手机之间同步电话号码。

    对了,还有你的 PDA 以及你办公室里的电脑。考虑到不同设备的数据同步方法种类繁多,操作复杂,要在这许多不同的设备之间保存和维护最新的一份联系人信息,你必须为此付出难以计数的时间和精力。这时,你需要用云计算来让一切都变得更简单。在云计算的网络应用模式中,数据只有一份,保存在“云”的另一端,你的所有电子设备只需要连接互联网,就可以同时访问和使用同一份数据。

    仍然以联系人信息的管理为例,当你使用网络服务来管理所有联系人的信息后,你可以在任何地方用任何一台电脑找到某个朋友的电子邮件地址,可以在任何一部手机上直接拨通朋友的电话号码,也可以把某个联系人的电子名片快速分享给好几个朋友。当然,这一切都是在严格的安全管理机制下进行的,只有对数据拥有访问权限的人,才可以使用或与他人分享这份数据。

    1. 无限可能

    为存储和管理数据提供了几乎无限多的空间,也为我们完成各类应用提供了几乎无限强大的计算能力。想像一下,当你驾车出游的时候,只要用手机连入网络,就可以直接看到自己所在地区的卫星地图和实时的交通状况,可以快速查询自己预设的行车路线,可以请网络上的好友推荐附近最好的景区和餐馆,可以快速预订目的地的宾馆,还可以把自己刚刚拍摄的照片或视频剪辑分享给远方的亲友……

    离开了云计算,单单使用个人电脑或手机上的客户端应用,我们是无法享受这些便捷的。个人电脑或其他电子设备不可能提供无限量的存储空间和计算能力,但在“云”的另一端,由数千台、数万台甚至更多服务器组成的庞大的集群却可以轻易地做到这一点。个人和单个设备的能力是有限的,但云计算的潜力却几乎是无限的。当你把最常用的数据和最重要的功能都放在“云”上时,我们相信,你对电脑、应用软件乃至网络的认识会有翻天覆地的变化,你的生活也会因此而改变。

    互联网的精神实质是自由、平等和分享。作为一种最能体现互联网精神的计算模型,云计算必将在不远的将来展示出强大的生命力,并将从多个方面改变我们的工作和生活。无论是普通网络用户,还是企业员工,无论是IT管理者,还是软件开发测试人员,他们都能亲身体验到这种改变。

    1.     物联网

    物联网是新一代信息技术的重要组成部分。物联网的英文名称叫“The Internet of Things”。顾名思义,物联网就是“物物相连的互联网”。这有两层意思:第一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;第二,其用户端延伸和扩展到了任何物体与物体之间,进行信息交换和通信。

    因此,物联网的定义是:通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物体与互联网相连接,进行信息交换和通信,以实现对物体的智能化识别、定位、跟踪、监控和管理的一种网络。

    展开全文
  • android登陆注册客户端与服务器端程序

    千次下载 热门讨论 2014-08-10 22:05:20
    这是一个简单的android登陆注册demo,包括客户端和服务器端的全部代码,经过测试通过,数据库采用mysql,适合入门的开发人员。
  • SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。通常发生在图片转储,文本加载等地方。 ...

    SSRF

    概述

    SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。通常发生在图片转储,文本加载等地方。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NduRDNQe-1647150625517)(../../images/ssrf.png)]

    原理

    由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。利用的是服务端的请求伪造。SSRF是利用存在缺陷的web应用作为代理攻击远程和本地的服务器。

    漏洞场景

    1. 分享:通过URL地址分享网页内容

    2. 转码服务

    3. 在线翻译

    4. 图片加载与下载:通过URL地址加载或下载图片

    5. 图片、文章收藏功能

    6. 未公开的api实现以及其他调用URL的功能

    7. 从URL关键字中寻找

    漏洞利用

    1. 可以对外网、内网、本地进行端口扫描,某些情况下端口的Banner会回显出来(比如3306的);
    2. 攻击运行在内网或本地的有漏洞程序(比如溢出);
    3. 可以对内网Web应用进行指纹识别,原理是通过请求默认的文件得到特定的指纹
    4. 攻击内网或外网有漏洞的Web应用
    5. 使用file协议,dict协议,gropher协议,ftp协议等读取本地文件
    6. 通过请其大文件进行Dos攻击
    7. 加载外部的恶意木马文件执行
    8. 加载内部的敏感文件程序自身的敏感文件
    9. 访问内网进行内网端口的扫描、获取内网设备信息、枚举内网服务等。

    示例

    1. @

      对于一个 url 的访问实际上是以 @符后为准的,比如说 xxxx.com@10.10.10.10,则实际上访问的是 10.10.10.10 这个地址。

      http://abc@127.0.0.1
      

      http://127.0.0.1
      
    2. 添加端口号

      http://127.0.0.1:8080
      
    3. 短地址

      http://dwz.cn/11SMa
      
    4. 指向任意ip的域名:xip.io

      例如 10.10.10.10.xip.io 会被解析成 10.10.10.10,详细介绍可以通过 xip.io 这个网站来查看。

      <pre> <strong> 10.0.0.1</strong>.xip.io   resolves to   10.0.0.1
       www.<strong>10.0.0.1</strong>.xip.io   resolves to   10.0.0.1
       mysite.<strong>10.0.0.1</strong>.xip.io   resolves to   10.0.0.1
       foo.bar.<strong>10.0.0.1</strong>.xip.io   resolves to   10.0.0.1
      
    5. ip地址转换成进制来访问
      将 ip 转换为八进制十进制十六进制这种,同样也可以正常访问

      例如将 10.10.10.10 转换为十进制是 168430090,在浏览器访问 http 😕/168430090 即访问 10.10.10.10

      115.239.210.26 = 16373751032
      
    6. 代码审计

      <?php
        if (isset($_GET['url'])) {
          $content = file_get_contents($_GET['url']); 
          #echo $_GET['url'];
                $filename = ''.rand().'img-tasfa.jpg';
          $fopen  =  fopen($filename,   'wb ');
          #echo $filename;
                file_put_contents($filename, $content);
                #echo $_GET['url'].""; 
                $img = "<img src=\"".$filename."\"/>";
            } 
            echo $img;
      ?>
      

    规避

    1. 使用白名单(黑名单),限制HOST。避免应用被用来获取获取内网数据,攻击内网。
    2. 对Response信息进行识别,验证远程服务器对请求的响应是比较容易的方法。如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。
    3. 需要使用互联网资源(比如贴吧使用网络图片)而无法使用白名单的情况:禁用跳转;然后通过域名获取目标ip,并过滤内部ip;最后识别返回的内容是否与假定内容一致
    4. 禁用重定向。防止默认跟随重定向后,继续请求内网地址
    5. 统一错误信息,避免用户可以根据错误信息来判断远端服务器的端口状态。
    6. 限制请求的端口为http常用的端口,比如,80,443,8080,8090。
    7. 禁用不需要的协议。仅仅允许http和https请求。可以防止类似于file:///,gopher://,ftp:// 等引起的问题。

    示例

    public static boolean ssrfCheck(String url) {
        try {
            URL urlObj = new URL(url);
            // 协议校验, 防止伪协议问题
     if(!urlObj.getProtocol().equals("https") && !urlObj.getProtocol().equals("http")) {
                return false;
            }
            // Host 校验
      String domain = urlObj.getHost();
            InetAddress host = InetAddress.getByName(domain);
            if(host.isSiteLocalAddress() || host.isLoopbackAddress()) {
                return false;
            }
            return true;
        } catch (MalformedURLException e) {
            return false;
        } catch (UnknownHostException e) {
            return false;
        }
    }
    

    参考文章

    展开全文
  • DWR3实现服务器端向客户端精确推送消息

    千次下载 热门讨论 2013-04-19 11:00:03
    使用DWR实现服务器端向客户端精确推送消息
  • Android怎么从服务器端获取数据

    千次阅读 2019-05-27 11:09:29
    在android中有时候我们不需要用到本机的SQLite数据库提供数据,更多的时候是从网络上获取数据,那么Android怎么从服务器端获取数据呢?有很多种,归纳起来有 一:基于Http协议获取数据方法。二:基于SAOP协议获取...

    在android中有时候我们不需要用到本机的SQLite数据库提供数据,更多的时候是从网络上获取数据,那么Android怎么从服务器端获取数据呢?有很多种,归纳起来有

    一:基于Http协议获取数据方法。二:基于SAOP协议获取数据方法,三:忘了-------

    那么我们的这篇文章主要是将关于使用Http协议获取服务器端数据,这里我们采取的服务器端技术为java,框架为Struts2,或者可以有Servlet,又或者可直接从JSP页面中获取数据。

    那么,接下来我们便开始这一路程:

    首先:编写服务器端方法,我这里采用的MVC框架是Struts2,目的很单纯,就是为了以后做个完整的商业项目,技术配备为:android+SSH。当然,篇幅有限,我这里就直接用Strtus2而已。

    服务器端:新建WebProject ,选择Java ee 5.0.

    为了给项目添加Struts2的支持,我们必须导入Struts2的一些类库,如下即可(有些jar包是不必的,但是我们后来扩展可能是要使用到的,就先弄进去):

    1: xwork-core-2.2.1.1.jar

    2: struts2-core-2.2.1.1.jar

    3: commons-logging-1.0.4.jar

    4: freemarker-2.3.16.jar

    5: ognl-3.0.jar

    6: javassist-3.7.ga.jar

    7:commons-ileupload.jar 

    8:commons-io.jar

    9:json-lib-2.1-jdk15.jar  处理JSON格式数据要使用到

    10:struts2-json-plugin-2.2.1.1.jar    基于struts2的json插件

    以上的jar包,需要放在WebRoot/WEB-INF/lib目录下

    然后在web.xml文件中敲下:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    
    &lt;!-- 定义Struts2的核心控制器:FilterDispatcher --&gt;
    &lt;filter&gt;
       &lt;!-- 定义核心Filter的名称 --&gt;
       &lt;filter-name&gt;struts2&lt;/filter-name&gt;
       &lt;!-- 定义Filter的实现类 --&gt;
       &lt;filter-class&gt;org.apache.struts2.dispatcher.FilterDispatcher&lt;/filter-class&gt;
    &lt;/filter&gt;
    
    &lt;filter-mapping&gt;
       &lt;filter-name&gt;struts2&lt;/filter-name&gt;
       &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    &lt;/filter-mapping&gt;
    

    <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    </web-app>


    然后编写struts.xml文件,并放在WebRoot/WEB-INF/lib目录下:如下代码:
    <?xml version=“1.0” encoding=“UTF-8”?>
    <!DOCTYPE struts PUBLIC
    “-//Apache Software Foundation//DTD Struts Configuration 2.0//EN”
    http://struts.apache.org/dtds/struts-2.0.dtd”>
    <struts>

    &lt;!-- setting encoding,DynamicMethod,language 
     &lt;constant name="struts.custom.i18n.resources" value="messageResource"&gt;&lt;/constant&gt;
    --&gt;
    &lt;constant name="struts.i18n.encoding" value="UTF-8"&gt;&lt;/constant&gt;
    &lt;constant name="struts.enable.DynamicMethodInvocation" value="true"&gt;&lt;/constant&gt;
    
    
    &lt;!-- add package here extends="struts-default"--&gt;
     &lt;package name="dongzi" extends="json-default"&gt; &lt;!--需要将struts-default改为json-default--&gt;
      &lt;!-- setting action --&gt;
         &lt;action name="login" class="com.dongzi.action.loginAction" method="login"&gt;
              &lt;result type="json"&gt;&lt;/result&gt;  &lt;!--返回值类型设置为json,不设置返回页面--&gt;        
        &lt;/action&gt; 
     &lt;/package&gt; 
    

    </struts>

    配置好后,我们再根据<action>标签内容来编写action。方法为method对应的login,类名为loginAction,

    注意:包继承为:json-default ,输出结果类型为json

    如下:
    public class loginAction extends ActionSupport implements 
                             ServletRequestAware,ServletResponseAware {
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
    
    HttpServletRequest request;
    HttpServletResponse response;
    
    public void setServletRequest(HttpServletRequest request) {
     this.request=request;
    }
    
    public void setServletResponse(HttpServletResponse response) {
        this.response=response;
    }
    
    public void  login(){  
        try {
             //HttpServletRequest request =ServletActionContext.getRequest();
             // HttpServletResponse response=ServletActionContext.getResponse();
             this.response.setContentType("text/html;charset=utf-8");
             this.response.setCharacterEncoding("UTF-8");
                 if(this.request.getParameter("username").equals("123456")){
                      this.response.getWriter().write("真的很奇怪,日本人!");
                 }else if(this.request.getParameter("username").equals("zhd")){
                     this.response.getWriter().write("没有错,我就是东子哥!");
                 }else{
                     this.response.getWriter().write("我就是东子哥!");
                 }
    
            //将要返回的实体对象进行json处理      
              //  JSONObject json=JSONObject.fromObject(this.getUsername());     
             //输出格式如:{"id":1, "username":"zhangsan", "pwd":"123"}      
             //   System.out.println(json);       
    
              //   this.response.getWriter().write(json.toString());
            /**
               JSONObject json=new JSONObject(); 
               json.put("login", "login");
                response.setContentType("text/html;charset=utf-8");
               System.out.println(json);
               byte[] jsonBytes = json.toString().getBytes("utf-8");
               response.setContentLength(jsonBytes.length);
               response.getOutputStream().write(jsonBytes);
               **/
            /**
              JSONObject json=new JSONObject(); 
               json.put("login", "login");
               byte[] jsonBytes = json.toString().getBytes("utf-8");
               response.setContentType("text/html;charset=utf-8");
               response.setContentLength(jsonBytes.length);
               response.getOutputStream().write(jsonBytes);
               response.getOutputStream().flush();
               response.getOutputStream().close();    
             **/  
    
        } catch (Exception e) { 
            e.printStackTrace();
        }
        // return null;
    }
    

    }

    运行查看下:
    http://localhost:8080/PDAServer/login.action?username=123456  当然你可以输入其他参数的URL

    Android与服务器端数据交互(http协议整合struts2+android)

    运行成功。

    客户端:

    这里需要注意的是模拟器把自己当成了localhost,以及127.0.0.1了,因此如果基于本地的web项目测试的话,必须修改IP为:10.0.2.2

    public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    //模拟器自己把自己当成localhost了,服务器应该为10.0.2.2
    private static String url="http://10.0.2.2:8080/PDAServer/login.action";
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    getPDAServerData(url);
    }
    

    /**

    • 请求服务
    • @param url
      */
      private void getPDAServerData(String url){
      url+="?username=123456";
      HttpClient client=new DefaultHttpClient();
      HttpPost request;
      try {
      request = new HttpPost(new URI(url));
      HttpResponse response=client.execute(request);
      //判断请求是否成功
      if(response.getStatusLine().getStatusCode()==200){
      HttpEntity entity=response.getEntity();
      if(entity!=null){
      String out=EntityUtils.toString(entity);
      new AlertDialog.Builder(this).setMessage(out).create().show();
      }
      }

    }catch (URISyntaxException e) {
    e.printStackTrace();
    }
    catch (ClientProtocolException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }

     运行结果如下:

    Android与服务器端数据交互(http协议整合struts2+android)

    成功了吧:当然读者可以根据这个思路扩展下应用,比如:struts2+hibernate+spring+json。数据方面可以用json,也可以使用xml。android已经提供了JSON的API,struts2中也可以使用JSON插件.自己扩展吧。

    转自:http://www.cnblogs.com/zhangdongzi/archive/2011/04/18/2020179.html

     本文由用户 fmms 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
     转载本站原创文章,请注明出处,并保留原始链接、图片水印。
     本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
                </div>
                <div class="col-md-3">
                    <div class="ui-box border ut-pd10">
                        <div class="title clearfix"><h3>相关经验</h3></div>
                        <ul class="ui-list">
    
    展开全文
  • Java中提供了socket编程来构建客户端和服务器端 构建服务器端的步骤: (1)bind
  • SSRF服务器端请求伪造攻击详解

    千次阅读 2022-02-07 23:14:18
      SSRF(Server-Side Request Forgery:服务器端请求伪造),是一种由攻击者构造请求,由服务端发起请求的安全漏洞。   其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做...
  • 查看服务器端口号(Linux)

    千次阅读 2020-09-28 16:18:37
    netstat - atulnp 此命令会显示所有端口和所有对应的程序,用grep管道可以过滤出想要的字段 -a :all,表示列出所有的连接,服务监听,Socket资料 -t :tcp,列出tcp协议的服务 -u :udp,列出udp协议的服务 ...
  • 如何进行服务器端的测试

    千次阅读 2019-08-16 12:36:53
    服务器端的测试:(服务器是互联网公司的核心——————eg:百度) 服务器端的高并发:整体的架构、协议(在测试之前要了解) 模拟所有可能发生的情况 重接口:get\post\dist webserver:传递协议 soupserver: ...
  • 1.2 网络编程技术 ...按照前面的基础知识介绍,无论使用TCP方式还是UDP方式进行网络通讯,网络编程都是由客户端和服务器端组成。当然,B/S结构的编程中只需要实现服务器端即可。所以,下面介绍网络编程的步骤时...
  • 服务器端和客户端有什么区别

    千次阅读 2019-10-06 10:45:54
    服务器端是为客户端服务的,客户端就是为真正的“客户”来服务的,所以这两者之间不同,但又密切相连,客户端是请求方或者说是指令发出方,而服务器端是响应方。 1、客户端:在web中是以request对象存在的,发送...
  • Android 客户端与服务器端交互实现登录功能

    千次阅读 多人点赞 2019-10-30 14:49:20
    思路: 安卓客户端输入账号和密码,使用 okHttp 向服务器端发送请求并传递输入的账号和密码,服务器端的登录接口查询数据库,判断...2. 服务器端是 Java Web 用SpringBoot+Mybatis-Plus 快速搭建的,接口返回 map ...
  • Session其实分为客户端Session和服务器端Session。 当用户首次与Web服务器建立连接的时候,服务器会给用户分发一个 SessionID作为标识。SessionID是一个由24个字符组成的随机字符串。用户每次提交页面,浏览器都会把...
  • 原标题:传奇私服服务器端在云服务器架设,全版本通用的传奇游戏架设教程传奇是一个经典古老的游戏,当年的火爆至今还历历在目!网上有许多单机版的传奇,不过过于无聊,很多东西仿的都不全。要是玩正版又没有那么多...
  • 【比较】什么是“服务器端跳转”“客户端跳转”,二者有什么区别? 浏览器的页面跳转大家都很熟悉,页面跳转具体分为以下两种: 服务器端跳转 客户端跳转 那么,到底什么是“服务器跳转”和“客户端跳转”呢? 1、...
  • 我们做网络通信的时候需要有通信协议,在进行socket编程的时候有两种通信协议TCP、UDP,这次我们就用简单的方式在一台电脑建立TCP协议的服务器端和客户端并使之进行通信。 服务器端和客户端进行连接,第一步就行在...
  • jsp文件是客户端还是服务器端

    千次阅读 2018-08-15 18:42:23
    1、客户端在通过浏览器访问服务器端存放的JSP时,JSP中的java代码、标签等是在服务器端运行的,生成普通的html,最终返回客户端的是这些html。 JSP在服务器端是被编译成为servlet的,这些servlet负责提供html的输出...
  • 服务器端脚本语言的比较

    千次阅读 2018-06-07 09:02:00
    服务器端脚本语言的比较 1.CGICommon GateWay Interface是最早用来创建动态网页的一种技术,它允许使用不同的语言来编写适合的CGI程序,CGI可是说是当前应用程序的基础技术,但这种技术的编制方式比较困难而且效率...
  • VUE服务器端渲染-NUXT实战视频

    千人学习 2019-04-10 19:10:07
    介绍服务器端渲染原理,深入浅出的讲解nuxt框架的使用。掌握服务器端渲染原理,掌握vue服务器端渲染
  • 基于TCP的客户端、服务器端socket编程一、实验目的理解tcp传输客户端服务器端通信流程二、实验平台MAC OS gxx-include-dir=/usr/include/c++/4.2.1三、实验内容编写TCP服务器套接字程序,程序运行时服务器等待客户...
  • oracle的客户端与服务器端有什么区别? 服务器端当然是提供oracle数据库服务了,还包括监听服务,用于接收客户端的连接。 客户端提供了一套工具,包括连接服务器端、开发使用的库文件、头文件,类似于informix里面的...
  • Zabbix配置后显示 否/NO/10051端口未开启原因分析解决方案 有时候我们已经配置好zabbix,但是在管理界面发现端口未开启: 原因分析 查看报错日志 有如下报错信息: [Z3001] connection to database 'zabbix' ...
  • Android studio获取服务器端json数据并解析

    万次阅读 多人点赞 2019-01-22 11:58:00
    最近在做Android的一个项目,涉及到Android studio与服务器端通信问题,在网上看了很多,找到了一些解决办法,这篇文章就简单介绍一下如何获取以及向服务器上传json数据。 在这个项目中,我们使用的json数据格式...
  • * @Description: 编写一个服务器端/客户端程序,对客户输入的字符串,服务器端以“客户端:”开头再返回 * @Author: * @Date: 2019/6/10 */ public class Question1 { public static void main(String[]...
  • 所以在学习了这部分内容后,就将其以最常见的登录过程为例整理出来,也方便跟我一样的新手能迅速学习上手。 预期效果图如下,输入手机号和密码,点击Login按钮,上传数据到服务器端...而服务器端分为User model、Use
  • HTTP-服务器端CooKie与浏览器端Cookie

    万次阅读 多人点赞 2016-06-25 21:57:55
    Cookie诞生的最初目的是为了存储web中的状态信息,以方便服务器端使用。比如判断用户是否是第一次访问网站。目前最新的规范是RFC 6265,它是一个由浏览器服务器共同协作实现的规范。 Cookie的处理分为: 服务器像...
  • 服务器端重定向和客户端重定向

    千次阅读 2019-03-31 15:46:21
    一、服务器端重定向 forward(dispatch)服务器端重定向 服务器端从一个servlet转向另一个servlet 在一个servlet中可以通过setAttribute往request中传递一些值 在另一个servlet中,可以通过getAttribute从request中...
  • Android服务器端开发

    千次阅读 2016-09-16 16:00:14
    Android服务器端开发 html/css:制作静态页面 servlet:动态页面 看界面与服务器之间有没有数据的交互 Web开发里面的模式 C/S:客服端/服务器端 优点:安全性高,客户端是可以分担服务器端的一些功能模块 ...
  • TCP协议客户端与服务器端一般的通信过程

    万次阅读 多人点赞 2018-08-17 23:22:51
    服务器初始化 (1)调用socket,创建文件描述符 (2)调用bind,将文件描述符与ip/port连接起来。若端口号已被占用,则bind失败 (3)调用listen,声明该文件描述符是服务器的一个文件描述符,为之后的accept做...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,680,473
精华内容 672,189
关键字:

服务器端