小白程序员必看:从服务器定义到C语言实现简易Web服务器,收藏学习!

张开发
2026/4/21 14:24:36 15 分钟阅读

分享文章

小白程序员必看:从服务器定义到C语言实现简易Web服务器,收藏学习!
小白程序员必看从服务器定义到C语言实现简易Web服务器收藏学习本文详细介绍了服务器的定义、分类以及不同类型服务器的特点和工作原理包括Web服务器、应用服务器、文件服务器和数据库服务器。此外还提供了使用C语言在Linux上实现简易Web服务器的实践教程帮助读者从理论到实践全面了解服务器知识。对于想要学习服务器基础知识并动手实践的程序员本文是一个很好的入门指南。文章目录[一、服务器的定义](#_2)[二、服务器的分类](#_7)1.外形2.CPU指令集3.用途1.web服务器WEB简介协议WWW简介发展和特点服务器特点工作原理2.应用服务器定义分类静态动态概括区别应用服务器和WEB服务器的区别Web型应用程序型3.文件服务器简介功能分类集中式文件服务器1SAN2NAS分布式文件服务器4.数据库服务器1.数据库服务器是什么2.数据库服务器特点1. 编程量减少2. 数据库安全高3. 数据可靠性管理4. 计算机资源利用充分5. 系统性能提高6. 易扩展3.数据库服务器应用[三、C语言在Linux上实现一个简易Web服务器](#CLinuxWeb_287)[四、熟悉在Linux上进行开发](#Linux_410)一、服务器的定义服务器英文名称为“Server”指的是网络环境下为客户机Client提供某种服务的专用计算机服务器安装有网络操作系统如Windows 2000 Server、Linux、Unix等和各种服务器应用系统软件如Web服务、电子邮件服务的计算机。这里的“客户机”指安装有DOS、Windows 9x等普通用户使用的操作系统的计算机。服务器的处理速度和系统可靠性都要比普通PC要高得多因为服务器是在网络中一般是连续不断工作的。普通PC死机了大不了重启数据的丢失损失也仅限于单台电脑。服务器则完全不同许多重要的数据都保存在服务器上许多网络服务都在服务器上运行一旦服务器发生故障将会丢失大量的数据造成的损失是难以估计的而且服务器提供的功能如代理上网、安全验证、电子邮件服务等都将失效从而造成网络的瘫痪对服务器可靠性的要求可见一斑。二、服务器的分类服务器的分类可以按照不同的标准一般可以按外形CPU指令集用途来进行分类。1.外形可以分为塔式服务器、机架服务器、刀片式服务器、高密度服务器。☰☰☰IMG{0}☰☰☰2.CPU指令集按照服务器的结构可以分为CISC复杂指令集架构的服务器和RISC精简指令集架构的服务器IA架构服务器Intel Architecture Server-即通常所讲的PC服务器采用x86(CISC)芯片并且主要采用Windows NT/Windows2000、Linux、FreeBSD等操作系统的服务器如Intel PentiumIIIP4和Intel P4Xeon至强等。RISC架构的服务器指采用非英特尔架构技术的服务器 使用RISC芯片并且主要采用UNIX操作系统的服务器如SUN公司的SPARC、HP公司的PA-RISC、DEC的Alpha芯片、SGI公司的MIPS等☰☰☰IMG{1}☰☰☰由于RISC架构服务器的性能和价格比CISC架构的服务器高得多。近几年来随着PC技术的迅速发展IA架构服务器与RISC架构的服务器之间的技术差距已经大大缩小用户基本上倾向于选择IA架构服务器但是RISC架构服务器在大型、关键的应用领域中仍然居于非常重要的地位。3.用途我们最关心的通常是服务器上面运行的业务种类和负载类型不同的业务应用和负载需要不同类型的服务器来承载。根据应用类型可以分为数据库服务器、应用服务器、文件服务器、Web服务器、接入服务器等。1.web服务器WEB简介WEB服务器也称为WWW(WORLD WIDE WEB)服务器主要功能是提供网上信息浏览服务。 WWW 是 Internet 的多媒体信息查询工具是 Internet 上近年才发展起来的服务也是发展最快和目前用的最广泛的服务。正是因为有了WWW工具才使得近年来 Internet 迅速发展且用户数量飞速增长。Web服务器是可以向发出请求的浏览器提供文档的程序。1、服务器是一种被动程序只有当Internet上运行其他计算机中的浏览器发出的请求时服务器才会响应。2 、最常用的Web服务器是Apache和Microsoft的Internet信息服务器Internet Information ServicesIIS。3、Internet上的服务器也称为Web服务器是一台在Internet上具有独立IP地址的计算机可以向Internet上的客户机提供WWW、Email和FTP等各种Internet服务。4、Web服务器是指驻留于因特网上某种类型计算机的程序。当Web浏览器客户端连到服务器上并请求文件时服务器将处理该请求并将文件反馈到该浏览器上附带的信息会告诉浏览器如何查看该文件即文件类型。服务器使用HTTP超文本传输协议与客户机浏览器进行信息交流这就是人们常把它们称为HTTP服务器的原因。Web服务器不仅能够存储信息还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。协议应用层使用HTTP协议。HTML标准通用标记语言下的一个应用文档格式。浏览器统一资源定位器URL。为了解决HTTP协议的这一缺陷需要使用另一种协议安全套接字层超文本传输协议HTTPS。为了数据传输的安全HTTPS在HTTP的基础上加入了SSL协议SSL依靠证书来验证服务器的身份并为浏览器和服务器之间的通信加密。WWW简介WWW是 World Wide Web 环球信息网的缩写也可以简称为 Web中文名字为“万维网”。它起源于1989年3月由欧洲量子物理实验室CERNthe 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、UNⅨ 或 Linux 等平台上。使用最多的 web server服务器软件有两个微软的信息服务器iis和Apache。通俗的讲Web服务器传送serves页面使浏览器可以浏览然而应用程序服务器提供的是客户端应用程序可以调用call的方法methods。确切一点你可以说Web服务器专门处理HTTP请求(request但是应用程序服务器是通过很多协议来为应用程序提供serves商业逻辑business logic。Web服务器可以解析handles)HTTP协议。当Web服务器接收到一个HTTP请求request会返回一个HTTP响应response例如送回一个HTML页面。为了处理一个请求requestWeb服务器可以响应response一个静态页面或图片进行页面跳转(redirect或者把动态响应dynamic response的产生委托delegate给一些其它的程序例如CGI脚本JSP(JavaServer Pages脚本servletsASP(Active Server Pages脚本服务器端server-side)JavaScript或者一些其它的服务器端server-side技术。无论它们译者注脚本的目的如何这些服务器端server-side的程序通常产生一个HTML的响应response来让浏览器可以浏览。要知道Web服务器的代理模型delegation model非常简单。当一个请求request被送到Web服务器里来时它只单纯的把请求request传递给可以很好的处理请求request的程序译者注服务器端脚本。Web服务器仅仅提供一个可以执行服务器端server-side程序和返回程序所产生的响应response的环境而不会超出职能范围。服务器端server-side程序通常具有事务处理transaction processing数据库连接database connectivity和消息messaging等功能。虽然Web服务器不支持事务处理或数据库连接池但它可以配置employ各种策略strategies来实现容错性fault tolerance和可扩展性scalability例如负载平衡load balancing缓冲caching。集群特征clustering—features经常被误认为仅仅是应用程序服务器专有的特征。应用程序服务器The Application Server)根据我们的定义作为应用程序服务器它通过各种协议可以包括HTTP把商业逻辑暴露给expose客户端应用程序。Web服务器主要是处理向浏览器发送HTML以供浏览而应用程序服务器提供访问商业逻辑的途径以供客户端应用程序使用。应用程序使用此商业逻辑就象你调用对象的一个方法或过程语言中的一个函数一样。应用程序服务器的客户端包含有图形用户界面GUI的可能会运行在一台PC、一个Web服务器或者甚至是其它的应用程序服务器上。在应用程序服务器与其客户端之间来回穿梭traveling的信息不仅仅局限于简单的显示标记。相反这种信息就是程序逻辑program logic。正是由于这种逻辑取得了takes数据和方法调用calls的形式而不是静态HTML所以客户端才可以随心所欲的使用这种被暴露的商业逻辑。在大多数情形下،应用程序服务器是通过组件component的应用程序接口API把商业逻辑暴露expose给客户端应用程序的例如基于J2EE(Java 2 Platform,Enterprise Edition应用程序服务器的EJB(Enterprise JavaBean组件模型。此外应用程序服务器可以管理自己的资源例如看大门的工作gate-keeping duties包括安全security事务处理transaction processing资源池resource pooling 和消息messaging。就象Web服务器一样应用程序服务器配置了多种可扩展scalability和容错fault tolerance技术。例如设想一个在线商店网站提供实时定价real-time pricing和有效性availability信息。这个站点site很可能会提供一个表单form让你来选择产品。当你提交查询query后网站会进行查找lookup并把结果内嵌在HTML页面中返回。网站可以有很多种方式来实现这种功能。我要介绍一个不使用应用程序服务器的情景和一个使用应用程序服务器的情景。观察一下这两中情景的不同会有助于你了解应用程序服务器的功能。情景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。情景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来提供应用程序逻辑的。警告Caveats)XML Web Services已经使应用程序服务器和Web服务器的界线混淆了。通过传送一个XML有效载荷payload给服务器Web服务器现在可以处理数据和响应response的能力与以前的应用程序服务器同样多了。另外大多数应用程序服务器也包含了Web服务器这就意味着可以把Web服务器当作是应用程序服务器的一个子集subset。虽然应用程序服务器包含了Web服务器的功能،但是开发者很少把应用程序服务器部署deploy成这种功能capacity)(译者注这种功能是指既有应用程序服务器的功能又有Web服务器的功能。相反如果需要،他们通常会把Web服务器独立配置和应用程序服务器一前一后。这种功能的分离有助于提高性能简单的Web请求request就不会影响应用程序服务器了分开配置专门的Web服务器集群clustering等等而且给最佳产品的选取留有余地。服务器特点WindowsLinux与Unix这3个操作系统是架设Web服务器比较常见的操作系统。Linux的安全性能在这3个操作系统中最高可以支持多个硬件平台其网络功能比较强大。总的来说这两大优点是其他操作系统不可替代的第一可以依据用户不同的需求来随意修改、调整与复制各种程序的源码以及发布在互联网上第二Linux操作系统的市场价格比较便宜也能够在互联网上免费下载源码。可以说Linux为架设既高效又安全的Web服务器的比较理想的操作系统。此外要让Web服务器更具有优越的性能可以根据服务器系统之特点与用途作进一步的优化与处理尽量减少Web服务器的数据传输量以及降低其数据传输的频率进而促进网络宽带的利用率与使用率以及提高网络客户端的网页加载的速度同时也可以减少Web服务器各种资源的消耗。工作原理Web服务器的工作原理并不复杂一般可分成如下4个步骤连接过程、请求过程、应答过程以及关闭连接。下面对这4个步骤作一简单的介绍。连接过程就是Web服务器和其浏览器之间所建立起来的一种连接。查看连接过程是否实现用户可以找到和打开socket这个虚拟文件这个文件的建立意味着连接过程这一步骤已经成功建立。请求过程就是Web的浏览器运用socket这个文件向其服务器而提出各种请求。应答过程就是运用HTTP协议把在请求过程中所提出来的请求传输到Web的服务器进而实施任务处理然后运用HTTP协议把任务处理的结果传输到Web的浏览器同时在Web的浏览器上面展示上述所请求之界面。关闭连接就是当上一个步骤–应答过程完成以后Web服务器和其浏览器之间断开连接之过程。Web服务器上述4个步骤环环相扣、紧密相联逻辑性比较强可以支持多个《网络安全从零到精通全套学习大礼包》96节从入门到精通的全套视频教程免费领取如果你也想通过学网络安全技术去帮助就业和转行我可以把我自己亲自录制的96节 从零基础到精通的视频教程以及配套学习资料无偿分享给你。网络安全学习路线图想要学习 网络安全作为新手一定要先按照路线图学习方向不对努力白费。对于从来没有接触过网络安全的同学我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线大家跟着这个路线图学习准没错。配套实战项目/源码所有视频教程所涉及的实战项目和项目源码学习电子书籍学习网络安全必看的书籍和文章的PDF市面上网络安全书籍确实太多了这些是我精选出来的面试真题/经验以上资料如何领取文章来自网上侵权请联系博主

更多文章