RHCE(web服务器)
创始人
2024-05-22 15:16:27
0

文章目录

  • 一、www简介
    • (一)网址及HTTP简介
    • (二)HTTP协议请求的工作流程
  • 二、www服务器的类型
    • (一)仅提供用户浏览的单向静态网页
    • (二)提供用户互动接口的动态网站
  • 三、www服务器的基本配置
  • 四、搭建基于https协议的静态网站
  • 五、作业:

一、www简介

1、什么是www
  www是world wide web的缩写,也就是全球信息广播的意思。通常说的上网就是使用www来查询用户所需的信息。www可以结合文字,图片,影像以及声音等多媒体,并通过可以让鼠标单击超链接的方式将信息以Internet传递到世界各处。

 与其他服务器类似,当客户端连接上www网站,该网站肯定会提供一些数据,客户端则必须使用可以解析这些数据的软件来处理,那就是浏览器。www服务器与客户端浏览器之间的连接图

2、www所使用的协议
 HTTP超文本传输协议,是互联网上最广泛的一种网络协议。所有的www文件都必须遵守这个标准
 HTTP协议是建立在TCP之上的一种无状态连接,整个基本的工作流程是客户端发送一个HTTP请求,说明客户端想要访问的资源和请求动作,服务端收到请求之后,服务端开始处理请求,并根据请求做出相应的动作访问服务器资源,最后通过发送HTTP响应把结果返回给客户端。其中一个请求的开始到一个响应的结束称为事务,当一个事务结束后还会在服务端添加一条日志条目。

3、web服务器
 网站服务器,是指驻留于英特网上某种类型的计算机程序,可以向浏览器等web客户端提供文档,也可以放置网站文件或数据文件
 目前最主流的三个WEB服务器是Apache和Microsoft和Internet-信息服务器(Internet Information Services,IIS)unix nginx。

4、主要数据
 服务器所提供的最主要的数据是超文本标记语言、多媒体文件;HTML只是一些纯文本数据,通过所谓的标记来规范所要显示的数据格式

5、浏览器
 客户端收到服务器的数据后,需要软件解析服务器所提供的数据,最后将效果呈现在用户的屏幕上。

(一)网址及HTTP简介

web服务器提供的数据部分都是文件,那么我们需要在服务器端先将数据文件写好,并且放置在某个特殊目录下面,这个目录就是我们整个网站。在redhat中,这个目录默认在/var/www/html。浏览器是通过你在地址栏中输入你所需要的网址来取得这个目录的数据

  • URL:统一资源定位器,对可以从互联网上的到资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。

  • 网址格式:<协议>://<主机或主机名>[:port]/<目录资源、路径>

    • 浏览器常支持的协议有:http、https、ftp
    • 主机地址或主机名:主机地址就是服务器在英特网所在的IP地址,如果是主机名的话,那么就需要域名解析了
    • 端口号:http为80,https为443,
      • 0-1023:永久的分配给固定的应用程序使用,特权端口
      • 1024-41951:为注册端口,但要求不是很严格,分配给程序注册为某应用使用,
      • 41952-60000:客户端程序随机使用的端口,动态端口,或则私有端口
  • http的请求方法:在http通信中,每个http请求报文都包含一个方法,用以告诉web服务器端需要执行哪些具体的动作,这些动作包括:获取指定web页面、提交内容到服务器、删除服务器上资源文件等

  • 状态代码:由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。

    • 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:服务器当前不能处理客户端的请求,一段时间后可能恢复正常
  • HTTP报文:http报文中有很多行内容,这些行的字段内容都是由一些ASCII码串组成,但各个字段的长度是不同的。http报文可分为两种,一种是从web客户端发往web服务器的http报文,称为请求报文。另外一种是从web服务器发往web客户端的报文,称为响应报文

  • http请求报文:

    • http请求报文由请求行、请求头部、空行和请求报文主体几个部分组成:
    • http响应报文由起始行、响应头部、空行和响应报文主体这几个部分组成:

MIME(Multipurpose Internet Mail Extension,多用途因特网邮件扩展)最初是为了解决在不同的电子邮件系统之间搬移报文时存在的问题。后来http也支持了这个功能,用它来描述数据并标记不同的数据内容类型。当web服务器响应http请求时,会为每一个http对象数据加一个MIME类型。当web浏览器获取到服务器返回的对象时,会去查看相关的MIME类型,并进行相应的处理。

MIME类型存在于HTTP响应报文的响应头部信息里,它是一种文本标记,表示一种主要的对象类型和一个特定的子类型。常见的MIME类型:

MIME类型文件类型
text/htmlhtml、htm、shtml文本类型
text/csscss文本类型
text/xmlxml文本类型
image/gifgif图像类型
image/jpegjpeg、jpg图像类型
application/javascriptjs文本类型
text/plaintxt文本类型
application/jsonjson文本类型
video/mp4mp4视频类型
video/quicktimemov视频类型
video/x-flvflv视频类型
video/x-wmv视频类型
video/x-msvideoavi视频类型

(二)HTTP协议请求的工作流程

  1. 客户在web浏览器地址栏输入访问地址
  2. web浏览器请求DNS服务器把域名解析成web服务器的IP地址
  3. web浏览器将端口号从访问地址中解析出来
  4. web浏览器通过解析后的IP地址及端口号与web浏览器之间建立一条TCP连接
  5. 建立TCP连接后,web浏览器向web服务器发送一条HTTP请求报文
  6. web服务器响应并读取浏览器的请求信息,返回一条HTTP响应报文
  7. web服务器关闭HTTP连接,关闭TCP连接,web浏览器显示访问的网站内容到屏幕上

二、www服务器的类型

(一)仅提供用户浏览的单向静态网页

 单纯是由服务器单向提供数据给客户端,Server不需要与client有互动,所以你可以到网站上去浏览,但是无法进行数据的上传

(二)提供用户互动接口的动态网站

 这种类型的网站可以让服务器与用户互动,常见的例如留言板,博客等。这种类型的网站需要通过“网页程序语言”实现与用户的互动行为。常见的例如:PHP网页程序语言,配合数据库系统来进行数据的读,写。当你向服务器请求数据时,其实是通过服务器端同一个网页程序在负责将数据读出或写入数据库,变动的是数据库的内容,网页程序没有任何变化。
 另外的一种交互式的动态网页主要是在客户端实现,服务端将可执行的程序代码传送给客户端,客户端的浏览器如果提供Javascript的功能,那么该程序就可以在客户端的计算机上面工作了;另外一种可在客户端执行的就是flash动画格式,在这种动画格式内还可以进行程序设计。

搭建动态网站的需求:

  • 可支持的操作系统:让所有需要的软件都能够进行安装
  • 可运行的www服务器:例如Apache
  • 网页程序语言:Perl、PHP、JSP、CGI、ASP
  • 数据存储的数据库系统:Mysql、MSSQL、Oracle等

LAMP(Linux+Apache+Mysql+PHP)

  • Apache主要提供www的服务器平台
  • MySQL:传统的文件读取是很麻烦的,如果你只要读取该文件当中的一小部分,系统还是会将整个文件读出来,若又有人同时读取同一个文件时,那就会造成效率与系统上的问题,所以才会有数据库系统的推出。数据库其实是一种特殊格式的文件,这种文件要通过特殊接口(数据库软件)来进行读写。由于这个特殊接口已经针对数据的查询、写入做过优化设计,因此很适合多人同时写入与查询工作。
  • PHP:PHP可以被用来建立动态网页,PHP程序代码可以直接在HTML网页当中嵌入,就像编辑HTML网页一样简单。PHP是一种“程序语言”,这种程序语言可以直接在网页当中编写,不需要经过编译即可执行。

三、www服务器的基本配置

服务器端:在linux上面实现网页服务器需要Apache这套服务器软件,httpd提供Apache主程序http://httpd.apache.org/docs/2.4/
安装软件: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.默认给一些可执行的CGI(网页程序)程序放置的目录/var/www/cgi-bin/,当输入网址/cgi-bin/时所显示的数据所在。
5.默认的Apache日志文件都放在/var/log/httpd/,对于流量比较大的网站来说,一个星期的日志文件的数据可以达到1GB左右

四、搭建基于https协议的静态网站

超文本传输协议HTTP协议被用于Web浏览器和网站服务器之间传递信息,HTTP协议被用于Web浏览器和网站服务器之间传递信息。http协议以明文的方式发生内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接获取其中的信息,因此http协议不适合传输一些敏感信息,比如信用卡,密码等。为了解决http协议的这个缺陷,需要使用另一种协议:安全套接字层超文本传输协议
HTTPS是以安全为目标的HTTP通道。HTTPS并不是一个新协议,而是HTTP+SSL(TLS)。原本HTTP先和TCP(假定传输层是TCP协议)直接通信,而加了SSL后,就变成HTTP先和SSL通信,再由SSL和TCP通信,相当于SSL被嵌在了HTTP和TCP之间。

SSL 是“Secure Sockets Layer”的缩写,中文叫做“安全套接层”。它是在上世纪90年代中期,由网景公司设计的。到了1999年,SSL 应用广泛,已经成为互联网上的事实标准。IETF 就把SSL 标准化。标准化之后SSL被改为 TLS(Transport Layer Security传输层安全协议)。
SSL协议分为两层:

  • SSL记录协议 (SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能。
  • SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

SSL协议提供的服务:
  • 认证用户和服务器,确保数据发送到正确的客户机和服务器
  • 加密数据以防止数据中途被窃取
  • 维护数据的完整性,确保数据在传输过程中不被改变。

HASH是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。Hash算法特别的地方在于它是一种单向算法,用户可以通过hash算法对目标信息生成一段特定长度的唯一hash值,却不能通过这个hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。

常见的HASH算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1。

共享密钥加密(对称密钥加密):加密和解密使用相同密钥。

对称加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES。

公开密钥加密(非对称密钥加密):公开密钥加密使用一对非对称的密钥。一把叫做私有密钥,一把叫做公开密钥。私有密钥不能让其他任何人知道,而公开密钥则可以随意发布,任何人都可以获得。使用此加密方式,发送密文的一方使用公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。利用这种方式,不需要发送用来解密的私有密钥,也不必担心密钥被攻击者窃听盗走。

常见的非对称加密算法:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)。
但由于公开密钥比共享密钥要慢,所以我们就需要综合一下他们两者的优缺点,使他们共同使用,而这也是HTTPS采用的加密方式。在交换密钥阶段使用公开密钥加密方式,之后建立通信交换报文阶段则使用共享密钥加密方式。

CA就是一个公认的公证单位,你可以自行产生一把密钥且制作出必要的证书数据并向CA单位注册,那么当客户端的浏览器在浏览时,该浏览器会主动向CA单位确认该证书是否为合法注册过,如果是,那么该次连接才会建立,如果不是,浏览器会发出警告信息,告知用户应避免建立连接。所以说,如此一来WWW服务器不但有公证单位的证书,用户在建立连接时也比较有保障。

当你在浏览器的地址栏上输入https开头的网址后,浏览器和服务器之间会在接下来的几百毫秒内进行大量的通信:
1.客户端浏览器向服务器端发送如下信息:

  • 客户端支持的SSL /TLS协议的版本号。
  • Cipher Suite(密钥算法套件)。
  • 客户端产生的随机数,稍后用于生成"会话密钥"。

2.服务器端向客户端发送如下信息:

  • 确认使用的加密通信协议版本,如果浏览器与服务器支持的版本不一致,服务器关闭加密通信。

  • 确认使用的加密方法。

  • 服务器证书。
     要使数字证书有用,它的结构必须采用一种可理解且可靠的形式,以便人们可以轻松地检索并理解证书内的信息。例如,护照采用这样一种结构:人们可以轻松地理解以前从未见过的那一类护照中的信息。同样,只要数字证书是标准化的,则无论颁发该证书的是哪个机构,人们都可以阅读并理解该证书。
     S/MIME 标准规定:用于 S/MIME 的数字证书应遵守国际电信同盟 (ITU) X.509 标准。S/MIME 版本 3 明确要求数字证书应遵循 X.509 的第 3 版。由于 S/MIME 依赖于已建立的数字证书结构公认标准,因此 S/MIME 标准建立在该标准的发展之上,从而提高了它的认可度。
    X.509 标准规定数字证书应包含标准化信息。具体地说,X.509 版本 3 证书包含下列字段:

    • 版本号 证书所遵循的 X.509 标准的版本。
    • 序列号 唯一标识证书且由证书颁发机构颁发的编号。
    • 签名算法 CA用于对证书进行数字签名的hash算法。
    • 颁发者名称 实际颁发该证书的证书颁发机构的标识。
    • 有效期 数字证书保持有效的时间段,并包含起始日期和过期日期。
    • 使用者名称 数字证书所有者的姓名。
    • 使用者公钥信息 与数字证书所有者关联的公钥以及与该公钥关联的特定公钥算法。
    • 颁发者唯一标识符 可以用来唯一标识数字证书颁发者的信息。
    • 使用者唯一标识符 可以用来唯一标识数字证书所有者的信息。
    • 扩充信息 与证书的使用和处理有关的其他信息。
    • 证书颁发机构的数字签名 使用指纹算法中指定的HASH算法以及证书颁发机构的私钥进行加密的数字签名。
       服务器生成的随机数,稍后用于生成"对话密钥"

3.客户端利用服务器传过来的信息验证服务器的合法性。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,则可以知道认证服务器的公开密钥的是真实有效的数字证书认证机构,并且服务器的公开密钥是值得信赖的。(此处认证机关的公开密钥必须安全地转交给客户端。使用通信方式时,如何安全转交是一件很困难的事,因此,多数浏览器开发商发布版本时,会事先在内部植入常用认证机关的公开密钥。)

4.客户端随机产生一个用于后面通讯的对称密钥,然后用服务器的公钥对其加密,然后将加密后的对称密钥传给服务器。

HTTPS的安全通信机制:
在这里插入图片描述

client向server发送请求https://baidu.com,然后连接到server的443端口,发送的信息主要是随机值1和客户端支持的加密算法。
server接收到信息之后给予client响应握手信息,包括随机值2和匹配好的协商加密算法,这个加密算法一定是client发送给server加密算法的子集。
随即server给client发送第二个响应报文是数字证书。服务端必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面,这套证书其实就是一对公钥和私钥。传送证书,这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间、服务端的公钥,第三方证书认证机构(CA)的签名,服务端的域名信息等内容。
客户端解析证书,这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随即值(预主秘钥)。
客户端认证证书通过之后,接下来是通过随机值1、随机值2和预主秘钥组装会话秘钥。然后通过证书的公钥加密会话秘钥。
传送加密信息,这部分传送的是用证书加密后的会话秘钥,目的就是让服务端使用秘钥解密得到随机值1、随机值2和预主秘钥。
服务端解密得到随机值1、随机值2和预主秘钥,然后组装会话秘钥,跟客户端会话秘钥相同。
客户端通过会话秘钥加密一条消息发送给服务端,主要验证服务端是否正常接受客户端加密的消息。
同样服务端也会通过会话秘钥加密一条消息回传给客户端,如果客户端能够正常接受的话表明SSL层连接建立完成了

工作流程可大致分为三个阶段:
认证服务器:浏览器内置一个受信任的CA机构列表,并保存了这些CA机构的证书。第一阶段服务器会提供经CA机构认证颁发的服务器证书,如果认证该服务器证书的CA机构,存在于浏览器的受信任CA机构列表中,并且服务器证书中的信息与当前正在访问的网站(域名等)一致,那么浏览器就认为服务端是可信的,并从服务器证书中取得服务器公钥,用于后续流程。否则,浏览器将提示用户,根据用户的选择,决定是否继续。当然,我们可以管理这个受信任CA机构列表,添加我们想要信任的CA机构,或者移除我们不信任的CA机构。
协商会话密钥:客户端在认证完服务器,获得服务器的公钥之后,利用该公钥与服务器进行加密通信,协商出两个会话密钥,分别是用于加密客户端往服务端发送数据的客户端会话密钥,用于加密服务端往客户端发送数据的服务端会话密钥。在已有服务器公钥,可以加密通讯的前提下,还要协商两个对称密钥的原因,是因为非对称加密相对复杂度更高,在数据传输过程中,使用对称加密,可以节省计算资源。另外,会话密钥是随机生成,每次协商都会有不一样的结果,所以安全性也比较高。
加密通讯:此时客户端服务器双方都有了本次通讯的会话密钥,之后传输的所有Http数据,都通过会话密钥加密。这样网路上的其它用户,将很难窃取和篡改客户端和服务端之间传输的数据,从而保证了数据的私密性和完整性。

PKI(Public Key Infrastructure)公钥基础设施是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书。一个机构通过采用PKI 框架管理密钥和证书可以建立一个安全的网络环境。PKI 主要包括四个部分:X.509 格式的证书(X.509 V3)和证书废止列表CRL(X.509 V2);CA 操作协议;CA 管理协议;CA 政策制定。
X.509通用的证书格式包含三个文件:key,csr,crt。
key是私钥文件。
csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名。
crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息。

五、作业:

基于同一IP的不同端口访问不同的网站(可以通过域名去访问) ip+port1 -> 对应一个域名 ip+port2 -> 对应一个域名 使用域名1我应该访问到 ip+port1对应的内容 使用域名2我应该访问到 ip+port2对应的内容
1、创建一个新的IP地址,虚拟IP配置如下:

[root@localhost ~]# nmcli connection modify ens160 +ipv4.addresses 192.168.47.160/24

2、创建两个目录存放不同的内容

[root@localhost ~]# mkdir -p /www/port/{8888,9999}

3、向两个目录中写入文件,设置页面

[root@localhost port]# echo "This page is for port 8888"> /www/port/8888/index.html
[root@localhost port]# echo "This page is for port 9999"> /www/port/9999/index.html

4、在httpd配置文件conf.d中创建一个新文件port.conf,写入配置文件后重启httpd
在这里插入图片描述
此时通过IP+port的方式我们可以访问不同的网页
在这里插入图片描述

在这里插入图片描述
5、使用记事本打开本地hosts文件
在这里插入图片描述
在hosts文件中添加以下映射关系:
在这里插入图片描述
测试:
在这里插入图片描述
在这里插入图片描述



你知道的hash算法有哪些 对称加密算法有哪些 非对称加密的算法有哪些

  • HASH算法:
    MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1。

  • 对称加密算法:
    DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES。

  • 非对称加密算法:
    RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)。

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...