【计算机网络】Web服务器的配置_web服务器配置-程序员宅基地

技术标签: 运维  servlet  服务器  http  网络协议  课程设计  

目录

课题描述

需求分析

2.1 WEB服务器基本构架

2.1.1 WEB服务器和浏览器

2.2 HTTP协议

2.2.1 HTTP简介

2.2.2 HTTP工作原理

2.3 FTP协议

2.3.1 FTP简介

2.3.2 FTP工作原理

2.4 ISS服务作用

概要设计

3.1 ISS服务器的安装与配置

3.2  详细设计

结果分析

4.1 Web服务器的工作原理

4.2 WEB服务器/浏览器的通信

4.3 分析请求


课题描述

     通过Internet Information Services (IIS)完成站点的创建,学会站点的规划与创建,能够自己创建个人网站。掌握Web站点的管理熟悉IIS服务器实现过程,学习认识关于http协议和ftp协议.http协议的实现和ftp协议的实现,包括http协议与ftp协议之间的相同点和不同点,和其他协议之间的依赖关系。Web服务器是网络系统平台的重要主件,它除了提供用于Web的硬件服务器外,还需要Web服务器的软件,目前用于建立Web服务器的软件主要有基于IIS等微软平台。

需求分析

    利用Microsoft 的IIS 实现WWW 服务的基本配置,并了解WWW 服务的体系结构与工作原理,掌握WEB 站点的管理,认识关于http协议和ftp协议.

2.1 WEB服务器基本构架

    Web应用的基本构架包括浏览器、网络和Web服务器。浏览器向服务器请求Web页,Web页可能包括由浏览器解释执行的客户端脚本,而且可以与浏览器、页内容和页中包含的其他控件(Java Applet、ActiveX控件和插件等)进行交互。用户向Web页输入信息或通过超级链接导航到其它Web页,与系统进行交互,改变系统的“业务状态”。

2.1.1 WEB服务器和浏览器

    WEB 是基于请求和响应的系统,它是在C/S(Client/Server)结构的基础上发展而来的。为了实现世界范围内的信息共享和发布,它规范了通讯协议,并规范、强化Client/Server两端的系统功能,WEB为用户在Internet上查看文档提供了一个图形化的,易于进入的界面,WEB是一种基于超文本传输协议(Hypertext Transport Potocol 简称HTTP)向计算机传送多媒体信息(如文本、图片、声音、视频、交互式应用程序)的Internet服务。同C/S结构一样,WEB由两部分构成,即WEB服务器端和WEB浏览器端,WEB服务器的主要功能是:创建、管理和维护WEB页面,对浏览器的请求进行应答并返回HTML页,WEB浏览器(Browser)用来观看WEB资源的客户端软件,主要负责请求,解释并显示WEB页,其工作过程见图2.1。

186924eb20db98fd45a08e41317a903f.jpeg

图 2.1 Web工作原理

图2.1 主要过程为:

(1)WEB浏览器通过将URL发给WEB服务器请求信息;

(2)WEB服务器响应请求,并返回给客户机超文本标记语言(HTML)页面;

(3)WEB浏览器对超文本标记语言(HTML)页面进行解释并显示。

2.2 HTTP协议

2.2.1 HTTP简介

   HTTP是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使得开发和部署是那么的直截了当。

   HTTP是应用层协议,同其他应用层协议一样,是为了实现某一类具体应用的协议,并由某一运行在用户空间的应用程序来实现其功能。HTTP是一种协议规范,这种规范记录在文档上,为真正通过HTTP协议进行通信的HTTP的实现程序。

   HTTP协议是基于B/S架构进行通信的,而HTTP协议的服务器端实现程序有httpd、nginx等,其客户端的实现程序主要是Web浏览器,例如Firefox、InternetExplorer、Google chrome、Safari、Opera等,此外,客户端的命令行工具还有elink、curl等。Web服务是基于TCP的,因此为了能够随时响应客户端的请求,Web服务器需要监听在80/TCP端口。这客户端浏览器和Web服务器之间就可以通过HTTP协议进行通信了。

2.2.2 HTTP工作原理

HTTP是基于客户/服务器模式,且面向连接的。典型的HTTP事务处理有如下的过程:

(1)客户与服务器建立连接;

(2)客户向服务器提出请求;

(3)服务器接受请求,并根据请求返回相应的文件作为应答;

(4)客户与服务器关闭连接。

   客户与服务器之间的HTTP连接是一种一次性连接,它限制每次连接只处理一个请求,当服务器返回本次请求的应答后便立即关闭连接,下次请求再重新建立连接。这种一次性连接主要考虑到WWW服务器面向的是Internet中成干上万个用户,且只能提供有限个连接,故服务器不会让一个连接处于等待状态,及时地释放连接可以大大提高服务器的执行效率。

   HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态。这就大大减轻了服务器记忆负担,从而保持较快的响应速度。HTTP是一种面向对象的协议。允许传送任意类型的数据对象。它通过数据类型和长度来标识所传送的数据内容和大小,并允许对数据进行压缩传送。当用户在一个HTML文档中定义了一个超文本链后,浏览器将通过TCP/IP协议与指定的服务器建立连接。

   从技术上讲是客户在一个特定的TCP端口(端口号一般为80)上打开一个套接字。如果服务器一直在这个周知的端口上倾听连接,则该连接便会建立起来。然后客户通过该连接发送一个包含请求方法的请求块。HTTP规范定义了9种请求方法,每种请求方法规定了客户和服务器之间不同的信息交换方式,常用的请求方法是GET和POST。服务器将根据客户请求完成相应操作,并以应答块形式返回给客户,最后关闭连接。

2.3 FTP协议

2.3.1 FTP简介

   文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。

   FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。然而, 用户并不真正登录到自己想要存取的计算机上面而成为完全用户, 可用FTP程序访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等等, 即使双方计算机可能配有不同的操作系统和文件存储方式。

   FTP 的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。它能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样。但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间,会非常长;并且不时的必须执行一些冗长的登录进程。

2.3.2 FTP工作原理

FTP 采用 Internet 标准文件传输协议 FTP 的用户界面, 向用户提供了一组用来管理计算机之间文件传输的应用程序。

FTP 是基于客户———服务器(C/S)模型而设计的,在客户端与 FTP 服务器之间建立两个连接。

开发任何基于 FTP 的客户端软件都必须遵循 FTP 的工作原理,FTP 的独特的优势同时也是与其它客户服务器程序最大的不同点就在于它在两台通信的主机之间使用了两条 TCP 连接,一条是数据连接,用于数据传送;另一条是控制连接,用于传送控制信息(命令和响应),这种将命令和数据分开传送的思想大大提高了 FTP 的效率,而其它客户服务器应用程序一般只有一条 TCP 连接。客户有三个构件:用户接口、客户控制进程和客户数据传送进程。服务器有两个构件:服务器控制进程和服务器数据传送进程。在整个交互的 FTP 会话中,控制连接始终是处于连接状态的,数据连接则在每一次文件传送时先打开后关闭。

2.4 ISS服务作用

IIS(Internet Information Server,互联网信息服务)是一种Web(网页bai)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。

使用微软的编程语言和框架(ASP.NET | Open-source web framework for .NET)写的网站可以部署到IIS服务器上。比如你访问了一个使用ASP.NET | Open-source web framework for .NET开发的网站的某个页面index.aspx,请求提交到对方服务器上,IIS就会收到你的请求,并且解析运行index.aspx,并把结果输出出来,返回给你,显示到你的浏览器上。

IIS同类产品主流的有Apache和nginx后二者多用于PHP、python等。 当然IIS也支持使用PHP开发的网站。如果你用asp写了一个网站,并且需要部署在一台服务器上给别人访问最方便的办法就是在Windows Server上添加IIS功能,并且创建一个应用程序,再把你用asp写的网站放进去,别人就可以访问你的服务器上的这个网站。

概要设计

3.1 ISS服务器的安装与配置

  • 依次进入控制面板—程序—启用或关闭Windows功能或者设置面板—应用—可选功能—更多Windows功能。

809c7b35c05bbdd3a008a0b4bcf8a96e.jpeg

图 3.1 控制面板

  •  在windows操作面板中,依次展开Internet Information Service —万维网服务—应用程序开发功能—在展开的列表中找到CGI勾选。

e2b8a3f03452be67ec868821e985037b.jpeg

图 3.2 启用或关闭Windows功能

  • 也可以把应用程序开发下的所有项都勾选

1785209d2a5af315764bc30ea3dba30d.jpeg

图 3.3 启用或关闭Windows功能

  • 点击确定,等待Windows完成安装。

03945699fe403999a7ed740f08c7f315.jpeg

图 3.4 ISS安装完成

  • 在Edge浏览器地址里输入localhost,将其打开。

7931ccadf836583ec27beb89f5bb0ddb.jpeg

 

图 3.5 浏览器页面

3.2  详细设计

  • 安装完成后,打开控制面板,将右边的“查看方式”改成“大图标”,点击“管理工具”

90bab6183e969c8ee5f94c0589cf4867.jpeg

图4.1 管理工具

  • 双击“Internet Information Services (IIS)管理器”,进入IIS管理界面,展开左侧的站点树,右击网站选择添加网站;

c661556ce1cd5bdc9d7e370cb4bcc9d2.jpeg

图 4.2 添加网站

  • 物理路径选择你想要的展示的网页的目录,IP地址选择本机IP,端口默认80,不作修改,确认无误后,点击确定。

303be39e1a8405f7a3ffc21fe9c511dc.jpeg

图 4.3 确认添加

  • 在网站本地路径中提前配置网页文件。

021c17e715902ac2eab333fe1fef71b8.jpeg

图 4.4 配置网页文件

  • 打开浏览器在网址栏输入http://192.168.0.101进入请求服务器,服务器响应如下网页。(此时显示的是文件目录)

6a777e1a56a17ff544b1670613ba6a68.jpeg

图 4.5 浏览器请求访问

  • 注意;配置时注意在IIS管理器中打开目录浏览设置

d30d0851092c41dd4b159565749cba73.jpeg

 

图 4.6 打开目录浏览设置

  • 如果未打开目录浏览设置,则会出现以下错误。

2d0e64753ca7a294f515b9ceb83de81d.jpeg

图 4.7 HTTP错误分析

  • 进一步点击文件目录中的相关文件。结果正常显示如下,表明Web服务器搭建成功。

 

876cdc0e9c8329c7b67518a4c6652d87.jpeg

图 4.8 相关配置文件的效果

4 结果分析

4.1 Web服务器的工作原理

WEB系统的基本原理是请求/响应客户端,浏览器接受用户输入的网页地址(URL)并进行分析,从而得到网页的文件名字和存放网页的计算机地址以及服务程序的端口号,首先根据计算机地址及端口号与服务器建立连接,然后把网页名称及浏览器本身的有关信息按照一定的格式组织起来,发给服务器,这就是请求。比如用户输http://kulin.ts/index.html,从而可知:

(1)计算机名称为kulin.ts根据这个名字能获知其计算机地址

(2)端口号为80(http服务的默认端口号)

(3)页面的文件名为index.html 浏览器就与kulin上端口号为80的服务程序建立连接,

并把类似下面的数据发送(作为服务请求)

GET /index.htm HTTP/1.1

Accept:image/gif,image/x-xbitmap,application/vnd.ms-powerpoint,/

Accept-Language:ch

UA-pixels:800*600

UA-color:color16

UA-OS:Windows xp

UA-CPU:P41.6

User-Agent:Mozilla/2.0(compatible’MSIE3.01;Window XP

Host:kulin.ts

Connection:Keep-Alive

其中第一行说明了文件名称(index.html)、请求的类型(GET)及浏览器支持的协议版本(HTTP/1.0)服务器端接受到请求后,对其进行分析,解析出网页的文件名称及其他信息(比如请求的类型、处理要求等),根据网页的文件名称到磁盘上提取文件内容,把文件内容和一些必要的说明信息打包后发给浏览器,然后断开连接,这就是“响应”。(浏览器接到文件内容后就将其中的内容显示出来了)比如对于文件长度为2559B的index.html来说,可以发送如下

数据作为“响应”:

HTTP/1.1 200 OK

www.bwj8.com

Server: kulin.ts-HttpSvr/1.1

Date:WED,20 may 2006 12:45:21

Content-type:text/html

Content-length:2559

Last-Modified:Sun,22 may 2006 14:21:50

上述数据分2大部分,第1部分为“头”,其中,第1行是状态行,包括服务器执行的HTTP版本及本次响应的状态码。后4行分别说明了服务器名称、当前日期、数据类型、数据长度、最后修改的日期和时间。第2部分为数据“体”,是“请求”要求传送的数据,它跟在1个空行之后。当然,客户端和服务器之间还可能有一些中间环节,比如代理服务器、网关、“隧道”等。

4.2 WEB服务器/浏览器的通信

  •  要完成Web服务,除了网络通信链路的建立和拆除,之外至少还要有二方面的功能:“分折请求”和“构造响应”。客户端与服务器交换数据之前,首先用TCP/IP建立连接,客户端向服务器请求数据,服务器则向客户端响应并提供数据.客户端和服务器以HTTP协议进行请求和响应.服务器和客户端只能为一次事务处理建立并维持连接,完成一次事务处理后便结束连接.
  •  每一个客户端向服务器发送请求均以方法(Method)开始,后跟对象的URL.客户端一般要在上述信息中补充所采用HTTP协议的版本号,其后跟一个回车换行(CRLF)字符对.依据请求情况,浏览器可能在CRLF后加上浏览器按特别的首部格式编码的信息.完成后浏览器给请求加上一个CRLF.还可依据请求情况,把一个实体(MIME格式文档)加到整个请求之后.一个HTTP方法实际上是一条命令,客户端用它来说明其请求目的,常用的有GET,HEAD和POST.
  •  Web服务器收到请求并解析之后,以一个HTTP响应消息响应客户端的请求.这个响应消息通常以HTTP协议版本号开始,后面是三位状态码和一个原因短语(Reason phrase),其后是一个CRLF,再后是请求的信息(它被服务器以一种特殊的首部格式编码),最后,服务器加上一个CRLF.其后还可以有一个可选实体.状态码是三位数,它描述了服务器理解和满足请求的情况,原因短语是状态代码的一个简短说明.HTTP协议版本号、状态代码、原因短语一起构成了状态行.

   上述分析不难看出,接收客户端请求、解析客户端请求、响应客户端请求、向客户端回送请求的结果是Web服务器所需完成的主要任务,Web服务器程序代码主要是为了完成这几项任务.

4.3 分析请求

如前文所述,“请求”的第1行数据是最重要的,它的格式是:方法 资源地址 HTTP版本号 回车换行,“方法”主要有3种:

GET:要求必须返回一定的内容。有时还必须根据“请求”的要求先对内容做一定的处理(比如解压缩或根据时间进行过滤)。

HEAD:处理办法和GET完全相同,但要求只返回“头”,而不可返回任何实质内容

POST:用来处理网页的附属内容,比如“注解”、数据回送等。

作为简单的服务器,我们只考虑第一行,且只处理GET请求,版本号不予理睬。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_56361048/article/details/126843583

智能推荐

【LInux软件--星际译王安装、词库下载】_stardict 词库-程序员宅基地

文章浏览阅读4.1k次,点赞3次,收藏8次。安装sudo apt-get install stardict词库下载http://download.huzheng.org/zh_CN/下载朗道词典在下载目录。将下载好的压缩包解压并添加到stardict的文件夹里面(管理员身份运行)$ tar -vjxf stardict-langdao-ec-gb-2.4.2.tar.bz2 -C/usr/share/stardict/dic..._stardict 词库

再不用担心Sci-Hub不能用了_sci-hub怎么不能用了-程序员宅基地

文章浏览阅读2.8k次。再不用担心Sci-Hub不能用了https://www.medsci.cn/article/show_article.asp?id=826f14493163_sci-hub怎么不能用了

5G NR标准 第2章 5G标准化_itu-r m.2410-0-程序员宅基地

文章浏览阅读2.5k次。5G NR标准 第2章 5G标准化移动通信系统的研究,开发,实施和部署是由无线行业在国际协调一致的努力下完成的,通过该协议,人们共同商定了定义完整的移动通信系统的通用行业规范。 这项工作在很大程度上取决于全球和区域法规,特别是对于频谱使用而言,频谱使用是所有无线电技术的基本组成部分。 本章描述了对于定义移动通信系统至关重要的监管和标准化环境。2.1 标准化和监管概述有许多组织参与创建技术规范和标准以及移动通信领域的法规。 这些可以大致分为三类:标准化组织,监管机构以及产业论坛。标准化组织(SDO) _itu-r m.2410-0

无node环境如何在js中引入JSON、txt、md等文件_不使用node 开发md技术文档-程序员宅基地

文章浏览阅读1k次。解决的问题后端接口未实现时,直接调用JSON定义好的模拟数据信息,从而继续开发其他功能。解决方案使用ajax请求要获取的模拟数据,url是json文件的相对路径,返回值就是json文件内容。代码示例项目使用mui构建,以为为mui语法的ajax请求。// get mock datamui.get('../mock/template.json', res => { ..._不使用node 开发md技术文档

程序员之路:Linux用户登录查看_linux 查看登录-程序员宅基地

文章浏览阅读1k次。1、查看登录用户信息# w输出:USER:登录的用户名 TTY:登录终端 FROM:从哪个ip登录 LOGIN@:登录时间IDLE:用户闲置时间JCPU:指的是和该终端连接的所有进程占用的时间,这个时间里并不包括过去后台作业时间,但却包括当前正在运行的后台作业所占用的时间PCPU:指当前进程所占用的时间WHA..._linux 查看登录

哈希表及其基础(java详解)_java 哈希表篇-程序员宅基地

文章浏览阅读1.3k次,点赞30次,收藏21次。这么详细你还拿不下哈希表?我不信。_java 哈希表篇

随便推点

Android AIDL创建Service_aidl自动生成service-程序员宅基地

文章浏览阅读7.9k次。简述:1. Android开发中会用到Service这个类,Service用于实现进程间方法的调用,UI中调用音乐播放服务就用到Service,起到跨进程通信的作用2. AIDL: Android Interface Definition Language,Android内部进程通信接口的描述语言,通过他可以定义进程间通信接口,结合service在后台运作,暴露接口用来和当前程序通信_aidl自动生成service

【零基础学习】手工SQL注入——MySQL、Access、SqlServer......_356f589a7df439f6f744ff19bb8092c0-程序员宅基地

文章浏览阅读978次。原文地址:https://mozhe.cn/news/detail/324SQL注入介绍SQL注入,其实就是用户浏览器提交的变量内容,应用程序(代码可能是asp、aspx、php、jsp等)对浏览器提交过来的数据未过滤,直接去数据库查询,导致把数据库里面其他内容(如管理账户和密码)查询返回到页面上。先看个《墨者学院故事会》的一个小故事: 某个镇子里,银行保险柜做为一个公共区域帮居..._356f589a7df439f6f744ff19bb8092c0

加密算法之MD5与SAH-1_sah一1-程序员宅基地

文章浏览阅读578次。示例代码:package com.java.test;import java.security.MessageDigest;public class Demo3 { public static void main(String[] args) { Demo3 demo = new Demo3(); System.out.println(demo.digestString("_sah一1

Mysql 其中一个字段去重,显示所有信息_mysql中distinct去重的同时查询所有的字段-程序员宅基地

文章浏览阅读2.1k次。Mysql 其中一个字段去重,显示所有信息使用 DISTINCT 关键字可以去掉查询中某个字段的重复记录。(无法显示改记录的其他信息)SELECT DISTINCT(name) FROM tb_name思路先查询重复的记录,根据最新记录id获取所有信息(比较耗时)SELECT * FROM tb_name WHERE ID IN ( SELECT max(ID) FROM tb_name GROUP BY name)..._mysql中distinct去重的同时查询所有的字段

解决哈希冲突,拉链法,开地址法等_哈希冲突拉链法,链拉的很长的时候怎么办-程序员宅基地

文章浏览阅读1.1k次。本文转自https://blog.csdn.net/lyp_558/article/details/49499035哈希冲突详解我喜欢用问答的形式来学习,这样可以明确许多不明朗的问题。 什么是哈希冲突? 比如我们要去买房子,本来已经看好的房子却被商家告知那间房子已经被其他客户买走了。这就是生活中实实在在的冲突问题。同样的当数据插入到哈希表时,不同key值产生的..._哈希冲突拉链法,链拉的很长的时候怎么办

Linux 编译出错“CMake Error at lin_sys/direct/qdldl/CMakeLists.txt:2 (add_subdirectory):“_cmake error at cmakelists.txt:62 (add_subdirectory-程序员宅基地

文章浏览阅读2.8k次,点赞6次,收藏10次。问题如下:CMake Error at lin_sys/direct/qdldl/CMakeLists.txt:2 (add_subdirectory):The source directory/home/ly/osqp/lin_sys/direct/qdldl/qdldl_sourcesdoes not contain a CMakeLists.txt file.问题原因git clone的时候子存储库丢失解决方案使用以下指令克隆代码,增加–recursive参数git clone -_cmake error at cmakelists.txt:62 (add_subdirectory):