当前短讯!web服务器是什么?web服务器的概念与类型

发布时间:   来源:CSDN  

服务:


【资料图】

是运行在操作系统后台的一个或多个程序,为用户或系统提供某项特定的服务。服务配置最多的是网络服务,网络服务通常就是为其他用户,其他计算机提供某项功能服务。

1.web服务器的概念 Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。目前最主流的三个Web服务器是Apache和Microsoft的Internet信息服务器(Internet Information Services,IIS)unix nginx。

1.1网页、网页文件和网站 网页是网站的基本信息单位,是WWW的基本文档。它由文字、图片、动画、声音等多种媒体信息以及链接组成,是用HTML编写的,通过链接实现与其他网页或网站的关联和跳转。 网页文件是用HTML(标准通用标记语言下的一个应用)编写的,可在WWW上传输,能被浏览器识别显示的文本文件。其扩展名是.htm和.html。 网站由众多不同内容的网页构成,网页的内容可体现网站的全部功能。通常把进入网站首先看到的网页称为首页或主页(homepage),例如,新浪、网易、搜狐就是国内比较知名的大型门户网站。

1.2www 是环球信息网的缩写,(亦作“Web”、“WWW”、“‘W3’”,英文全称为“World Wide Web”),中文名字为“万维网”,"环球网"等,常简称为Web。 分为Web客户端和Web服务器程序。 WWW可以让Web客户端(常用浏览器)访问浏览Web服务器上的页面。 是一个由许多互相链接的超文本组成的系统,通过互联网访问。

1.3Http (HyperText Transfer Protocal)超文本传输协议,是互联网上最广泛的一种网络协议,所有的www文件都必须遵守这个标准。

nihao xiaobai

web服务器的类型:

1.仅提供用户浏览的单向静态网页 单纯是由服务器单向提供数据给客户端,Server不需要与client端有互动,所以你可以到该网站上去浏览,但是无法进行数据的上传。 2.提供用户互动接口的动态网站 这种类型的网站可以让服务器与用户互动,常见的例如留言板,博客。这种类型的网站需要通过“网页程序语言”来实现与用户互动的行为。常见的例如:PHP网页程序语言,配合数据库系统来进行数据的读、写。当你在向服务器请求数据时,其实是通过服务器端同一个网页程序在负责将数据读出或写入数据库,变动的是数据库的内容,网页程序并没有任何改变。

网址的意义:

web服务器提供的这些数据大部分都是文件,那么我们需要在服务器端先将数据文件写好,并且放置在某个特殊的目录下面,这个目录就是我们整个网站的首页,在redhat中,这个目录默认在/var/www/html。浏览器是通过你在地址栏中输入你所需要的网址来取得这个目录的数据的。 URL:Uniform Resource Locator,统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。 <协议>://<主机地址或主机名>[:port]/<目录资源,路径> 浏览器常支持的协议有:http、https、ftp等。 主机地址或者主机名:主机地址就是服务器在因特网所在的IP地址。如果是主机名的话,那么就需要域名解析了。 端口:http为80。https为443。 IANA:互联网数字分配机构 0-1023:众所周知,永久地分配给固定的应用程序使用,特权端口(只有管理员有权限启用并让进程监听); 1024-41951:亦为注册端口,但要求不是特别严格,分配给程序注册为某应用使用:3306/TCP 41952-60000:客户端程序随机使用的端口,动态端口,或私有端口;

http协议运行原理

1)、Web浏览器使用HTTP命令向一个特定的服务器发出Web页面请求。 2)、若该服务器在特定端口(通常是TCP 80端口)处接收到Web页面请求后,就发送一个应答并在客户和服务器之间建立连接。 3)、服务器Web查找客户端所需文档,若Web服务器查找到所请求的文档,就会将所请求的文档传送给Web浏览器。若该文档不存在,则服务器会发送一个相应的错误提示文档给客户端。 4)、Web浏览器接收到文档后,就将它显示出来。 5)、当客户端浏览完成后,就断开与服务器的连接。

浏览器与服务器之间传递数据的方法:

状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。 1xx:指示信息 —— 表示请求已接收,继续处理。 2xx:成功 —— 表示请求已被成功接收、理解、接受。 3xx:重定向 —— 要完成请求必须进行更进一步的操作。 4xx:客户端错误 —— 请求有语法错误或请求无法实现。 5xx:服务器端错误 —— 服务器未能实现合法的请求。 常见状态代码、状态描述的说明如下。 200 OK:客户端请求成功。 400 Bad Request:客户端请求有语法错误,不能被服务器所理解。 401 Unauthorized:请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用。 403 Forbidden:服务器收到请求,但是拒绝提供服务。 404 Not Found:请求资源不存在,举个例子:输入了错误的URL。 500 Internal Server Error:服务器发生不可预期的错误。 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

web网站搭建

搭建流程(思路) |——搭建环境: |——搭建架构C/S |——(客户端)-网站访问格式: |——(服务端) 3.1.2 服务搭建执行命令框架 |——安装软件包 |——启用服务 |——设置防火墙,selinux规则策略 |——配置服务,设置访问信息(根据需求设置访问格式,访问内容) |——重启服务 |——通过客户端测试 1.yum install httpd 安装软件包 2.systemctl start httpd 启用服务 3.systemctl stop firewalld 关闭防火墙 setenfoce 0 关闭selinux 4.vim /etc/httpd/conf.d/vhosts.conf 设置主机访问目录,以及目录权限 vim /var/www/html/index.html 定义网站资源信息 5.systemctl restart httpd 重启服务 6.打开浏览器通过http://ip 通过指定格式访问测试,是否满足需求

web服务器基本配置以及常用文件目录介绍

①搭建静态网站——基于http协议的静态网站 服务器端:在linux上面实现网页服务器需要Apache这套服务器软件,httpd提供Apache主程序。 http://httpd.apache.org/docs/2.4/ 安装软件: [root@localhost ~]# yum install httpd -y [root@localhost ~]# rpm -ql httpd [root@localhost httpd]# tree /etc/httpd /etc/httpd ├── conf │ ├── httpd.conf │ └── magic ├── conf.d │ ├── autoindex.conf │ ├── README │ ├── userdir.conf │ └── welcome.conf ├── conf.modules.d │ ├── 00-base.conf │ ├── 00-dav.conf │ ├── 00-lua.conf │ ├── 00-mpm.conf │ ├── 00-proxy.conf │ ├── 00-systemd.conf │ └── 01-cgi.conf ├── logs -> …/…/var/log/httpd ├── modules -> …/…/usr/lib64/httpd/modules └── run -> /run/httpd 1./etc/httpd/conf/httpd.conf 主要的配置文件 。 2./etc/httpd/conf.d/*.conf 额外的参数文件。如果你不想要修改原始配置文件httpd.conf的话,那么你可以将你自己的额外参数文件独立出来,例如你想要有自己的额外设置值,可以将它写入/etc/httpd/conf.d/zhuji.conf(注意,扩展名一定是.conf),而启动Apache时,这个文件就会被读入主要配置文件当中了。 3./var/www/html/这就是默认的首页所在目录,当输入网址时所显示的数据,就是放在这个目录当中的首页文件(默认为index.html)。 4./var/www/cgi-bin/默认给一些可执行的CGI(网页程序)程序放置的目录,当输入网址/cgi-bin/时所显示的数据所在。 5./var/log/httpd/默认的Apache日志文件都放在这里,对于流量比较大的网站来说,一个星期的日志文件的数据可以达到1GB左右。 启动脚本:/usr/lib/systemd/system/httpd.service 使用端口:80(http),443(https) [root@localhost httpd]# netstat -tlnup | grep 80

主配置文件内容:[root@localhost ~]# vim /etc/httpd/conf/httpd.conf

31   ServerRoot "/etc/httpd"                 http服务的顶级目录为/etc/httpd42 Listen 80监听在80端口,80为web服务器的默认端口56 Include conf.modules.d/*.conf     包括/etc/httpd/conf.modules.d/*.conf的所有文件66 User apache服务的用户(ps -ef | grep httpd,先以root用户把/usr/sbin/httpd服务启动起来)。启动服务后转换的身份,在启动服务时通常以root身份,然后转换身份,这样增加系统安全67 Group apache86 ServerAdmin root@localhost你的邮箱,有事的时候给你发邮件95 #ServerName www.example.com:80    ServerName 0.0.0.0:80匹配任意IP地址,监听端口在80端口默认是不需要指定的,服务器通过名字解析过程来获得自己的名字,但如果解析有问题(如反向解析不正确),或者没有DNS名字,也可以在这里指定ip地址,当这项不正确的时候服务器不能正常启动。解决办法就是启动该项把www.example.com:80修改为自己的域名或者直接修改为localhost 102目录为根,<>为起始标志,为结束标志103     AllowOverride none 不允许这个目录下的访问控制文件来改变这里的配置,这也意味着不用查看这个目录下的访问控制文件。104     Require all denied 拒绝访问根105和是一组标签,目录控制容器 119 DocumentRoot "/var/www/html"网页文件存放的目录 124125     AllowOverride None126     # Allow open access:127     Require all granted128131144     Options Indexes FollowSymLinks   索引,跟踪软链接151     AllowOverride None156     Require all granted157163加载一个目录模块164     DirectoryIndex index.html165171不能访问172     Require all denied173182 ErrorLog "logs/error_log" 189 LogLevel warn 191日志配置模块 /var/log/httpd,日志模块:通过时间节点去记录(man date)196     LogFormat "%h %l %u %t \"%r\" %>s %b \"%{    Referer}i\" \"%{User-Agent}i\"" combined197     LogFormat "%h %l %u %t \"%r\" %>s %b" com    mon198 199201       LogFormat "%h %l %u %t \"%r\" %>s %b \"    %{Referer}i\" \"%{User-Agent}i\" %I %O" combi    nedio202217     CustomLog "logs/access_log" combined218220别名模块247     ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"249cgi(通用网关接口)是web服务器运行时外部程序的规范,按cgi编写的程序可以扩展服务器的功能。cgi应用程序能与浏览器进行交互,还可通过数据库API与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据  255256     AllowOverride None257     Options None258     Require all granted259261多用途互联网邮件扩展模块266     TypesConfig /etc/mime.types283     AddType application/x-compress .Z284     AddType application/x-gzip .gz .tgz305     AddType text/html .shtml306     AddOutputFilter INCLUDES .shtml307mime多用途互联网邮件扩展类型,是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问时,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。  316 AddDefaultCharset UTF-8  默认字符集  318324     MIMEMagicFile conf/magic325348 EnableSendfile on353 IncludeOptional conf.d/*.conf

httpd.conf配置文件主要由3个部分组成 Global Environment 全局环境 Main Server Configuration主服务器配置 Virtual hosts虚拟主机 (每部分都有相应的配置语句,该文件所有配置语句的语法为“配置参数名称 参数值”的形式。 httpd.conf的配置语句除了选项的参数值以外,所有选项指令均不区分大小写,可以在每一行前用“#”号表示注释。 全局配置的相关参数,全局的参数一般不用改动 ) 配置路径: /etc/httpd/* 主配置目录: /etc/httpd/conf 子配置目录: /etc/httpd/conf.d(apache是一个模块化的一个配置服务,所以我们可以根据每个模块进行一些配置,不仅对程序本身进行模块化配置对配置文件也进行了模块化配置)

服务器的搭建

1.默认http访问界面 2.http访问静态界面ServerAdmin webmaster@dummy-host2.example.com DocumentRoot “@@ServerRoot@@/docs/dummy-host2.example.com” ServerName dummy-host2.example.com ErrorLog “/var/log/httpd/dummy-host2.example.com-error_log” CustomLog “/var/log/httpd/dummy-host2.example.com-access_log” common

3.基于ip地址对web服务器访问

第一步:配置网络:[root@localhost ~]# nmcli connection modify eno16777736 ipv4.addresses 192.168.10.100/24 ipv4.gateway 192.168.10.1 ipv4.dns 114.114.114.114 ipv4.method  manual connection.autoconnect yes[root@localhost ~]# nmcli connection modify eno16777736 +ipv4.addresses 192.168.10.200/24 ipv4.gateway 192.168.10.1 ipv4.dns 114.114.114.114 ipv4.method  manual connection.autoconnect yes[root@localhost ~]# nmcli connection up eno16777736 成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/12)第二步:编辑配置文件:[root@localhost ~]# mkdir /www/{100,200} -pv mkdir: 已创建目录 "/www/100"mkdir: 已创建目录 "/www/200"[root@localhost ~]# echo this is 192.168.10.100 > /www/100/index.html[root@localhost ~]# echo this is 192.168.10.200 > /www/200/index.html vim /etc/httpd/conf.d/vhosts.confAllowOverride none    ----允许覆盖Require all granted         -----设置访问目录权限DocumentRoot /www/100       -------指定当前主机访问网站根目录ServerName 192.168.10.100 ----指定访问网站名称ServerAdmin  root@localhostErrorLog "/var/log/httpd/dummy-host2.example.com-error_log"    ---错误日志CustomLog "/var/log/httpd/dummy-host2.example.com-access_log" common   ---访问日志DocumentRoot /www/200        ServerName 192.168.10.200        ErrorLog "/var/log/httpd/dummy-host2.example.com-error_log"        CustomLog "/var/log/httpd/dummy-host2.example.com-access_log" common[root@localhost ~]# systemctl restart httpd  测试[root@localhost ~]# curl http://192.168.10.200this is 192.168.10.200[root@localhost ~]# curl http://192.168.10.100this is 192.168.10.100

4.基于端口 基于不同端口访问不同网站 建立一个网站,文件存放在/WWW/80,内容显示为the port is 80; 建立一个网站,文件存放在/www/10000,内容显示为the port is 10000; 配置如下: LISTEN 10000DocumentRoot /www/200 ServerName 192.168.10.200 ErrorLog “/var/log/httpd/dummy-host2.example.com-error_log” CustomLog “/var/log/httpd/dummy-host2.example.com-access_log” common

5.基于域名 基于域名的网站,需要用到域名解析。域名------->ip地址 浏览器如何通过域名去查询URL对应的IP(对应服务器地址): 1、浏览器缓存:浏览器会按照一定的频率缓存DNS记录。 2、操作系统缓存:如果浏览器缓存中找不到需要的DNS记录,那就去操作系统中的hosts文件找。hosts是一个没有扩展名的系统文件,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库",当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。 windows下的hosts文件路径:C:\Windows\System32\drivers\etc\hosts Linux下的hosts文件路径:/etc/hosts 3、路由缓存:路由器也有DNS缓存。 4、ISP的DNS服务器:ISP是互联网服务提供商(Internet Service Provider)的简称,ISP有专门的DNS服务器应对DNS查询请求。 5、根服务器:ISP的DNS服务器还找不到的话,它就会向根服务器发出请求,进行递归查询(DNS服务器先问根域名服务器.com域名服务器的IP地址,然后再问.com域名服务器,依次类推)。 1、新建一个网站,域名为www.haha.com,同时可通过www1.haha.com访问,文件存放在/www/haha目录,网页内容为This is www.haha.com. 2、新建一个网站,域名为www.xixi.com,文件存放在/www/xixi 配置方法如下:

[root@localhost ~]# cat /etc/httpd/conf.d/vhosts.confAllowOverride none Require all grantedDocumentRoot /www/100ServerName 192.168.10.100        ErrorLog "/var/log/httpd/dummy-host2.example.com-error_log"        CustomLog "/var/log/httpd/dummy-host2.example.com-access_log" commonLISTEN 10000DocumentRoot /www/200ServerName 192.168.10.200        ErrorLog "/var/log/httpd/dummy-host2.example.com-error_log"        CustomLog "/var/log/httpd/dummy-host2.example.com-access_log" commonDocumentRoot /www/hahaServerName www.haha.comServerAlias www1.haha.com        ErrorLog "/var/log/httpd/dummy-host2.example.com-error_log"        CustomLog "/var/log/httpd/dummy-host2.example.com-access_log" commonDocumentRoot /www/xixiServerName www.xixi.com        ErrorLog "/var/log/httpd/dummy-host2.example.com-error_log"        CustomLog "/var/log/httpd/dummy-host2.example.com-access_log" commonVim /etc/hosts192.168.10.100  www.xixi.com192.168.10.200 www.haha.com windows:C:\Windows\System32\drivers\etc\hostsLinux /etc/hosts

6.SSL认证 ①搭建静态网站——基于https协议的静态网站 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道。HTTPS并不是一个新协议,而是HTTP+SSL(TLS)。原本HTTP先和TCP(假定传输层是TCP协议)直接通信,而加了SSL后,就变成HTTP先和SSL通信,再由SSL和TCP通信,相当于SSL被嵌在了HTTP和TCP之间。 SSL Secure Socket Layer,为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听。一般通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全标准,但限制出境。只要3.0版本以上之I.E.或Netscape浏览器即可支持SSL。 当前版本为3.0。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。 SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。 ssl提供服务 1)认证用户和服务器,确保数据发送到正确的客户机和服务器; 2)加密数据以防止数据中途被窃取; 3)维护数据的完整性,确保数据在传输过程中不被改变。

共享密钥加密(对称密钥加密):加密和解密同用一个密钥。加密时就必须将密钥传送给对方,那么如何安全的传输呢? 公开密钥加密(非对称密钥加密):公开密钥加密使用一对非对称的密钥。一把叫做私有密钥,一把叫做公开密钥。私有密钥不能让其他任何人知道,而公开密钥则可以随意发布,任何人都可以获得。使用此加密方式,发送密文的一方使用公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。利用这种方式,不需要发送用来解密的私有密钥,也不必担心密钥被攻击者窃听盗走 但由于公开密钥比共享密钥要慢,所以我们就需要综合一下他们两者的优缺点,使他们共同使用,而这也是HTTPS采用的加密方式。在交换密钥阶段使用公开密钥加密方式,之后建立通信交换报文阶段则使用共享密钥加密方式。

这里就有一个问题,如何证明公开密钥本省是货真价实的公开密钥。如,正准备和某台服务器建立公开密钥加密方式下的通信时,如何证明收到的公开密钥就是原本预想的那台服务器发行的公开密钥。或许在公开密钥传输过程中,真正的公开密钥已经被攻击者替换掉了。这个时候就需要第三方公证单位来帮忙啦。 CA就是一个公认的公证单位,你可以自行产生一把密钥且制作出必要的证书数据并向CA单位注册,那么当客户端的浏览器在浏览时,该浏览器会主动向CA单位确认该证书是否为合法注册过,如果是,那么该次连接才会建立,如果不是,浏览器会发出警告信息,告知用户应避免建立连接。所以说,如此一来WWW服务器不但有公证单位的证书,用户在建立连接时也比较有保障。 接收到证书的客户端可以使用数字证书认证机构的公开密钥,对那张证书上的数字签名进行验证,一旦验证通过,客户端便可以明确两件事:

一、认证服务器的公开密钥的是真实有效的数字证书认证机构。 二、服务器的公开密钥是值得信赖的。 此处认证机关的公开密钥必须安全地转交给客户端。使用通信方式时,如何安全转交是一件很困难的事,因此,多数浏览器开发商发布版本时,会事先在内部植入常用认证机关的公开密钥。

服务器把自己的公开密钥登录至数字证书认证机构。数字证书认证机构用自己的私有密钥向服务器的公开密钥署数字签名并颁发公钥证书。客户端拿到服务器的公钥证书后,使用数字签名认证机构的公开密钥,向数字证书认证机构验证公钥证书上的数字签名,以确认服务器的公开密钥的真实性。使用服务器的公开密钥对报文加密后发送。服务器用私有密钥对报文解密。 7. 虚拟目录的作用: 为了便于对网站资源进行灵活管理,还可以把这些文件存放在本地计算机的其它文件夹中或者其它计算机的共享文件夹中,然后再把这个文件夹映射到网站主目录中的一个文件夹上,这个文件夹被称为“虚拟目录”。 每个虚拟目录都有一个别名,这样用户就可以通过这个虚拟目录的别名来访问与之对应的真实文件夹中的资源了。虚拟目录的好处是在不需要改变别名的情况下,可以随时改变其对应的文件夹。

原理: WEB服务器上的每个WEB站点必须设置有不同的标识信息 WEB浏览器发出的连接和请求信息中包含WEB站点的标识信息 WEB站点的标识信息: IP地址、端口号、主机名

相关文章Related

返回栏目>>