一.用户常用关于web的信息
(1).什么是www
- www是world wide web的缩写,及万维网,也就是全球信息广播的意思。
- 通常说的上网就是使用www来查询用户所需要的信息。
- www可以结合文字、图形、影像以及声音等多媒体,超链接的方式将信息以Internet传递到世界各处去。
- 当你连接www网站,该网站会提供一些数据,客户端要使用可以解析这些数据的软件来处理,那就是浏览器。
(2).网址
- URI:Uniform Resource Identifier统一资源标识,分为URL和URN
- URN:Uniform Resource Naming,统一资源命名,P2P下载使用的磁力链接是URN的一种实现
- URL:Uniform Resorce Locator,统一资源定位符用于描述某服务器某特定资源位置
- 两者区别:而URL提供查找该事物的方法。URN仅用于命名,而不指定地址
(3).URL组成
每一个网页都有只属于自己的URL,它具有全球唯一性。URL由以下几部分组成:
-
协议:常用的有http协议,https(http+ssh)协议。
-
服务器主机地址:可以是域名,也可以是主机名,或IP地址。
-
端口:服务器设定的端口。URL地址里一般无端口,因为服务器使用了协议的默认端口,用户通过url访问服务器时,可以省略。
-
路径:访问的资源在服务器下的相对路径,是服务器上的一个目录或者文件地址。
-
参数:查询搜索的部分,通过问号连接到路径后面,有时候也归类到路径中。
二.HTTP简介
(1).什么是http
- HTTP协议:全称为Hyper Text Transfer Protocol(超文本传输协议)
- 简单来说http就是从服务器传输超文本(html)到本地浏览器的传输协议
- HTTP协议工作于B/S架构上,浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务端发送请 求(Request)Web服务端根据接收到的请求数据后,向客户端发送响应信息(Response)
(2).http工作机制
- http请求:http request
- http响应: http response
- 静态文件:无需服务端做出额外处理,服务器端和客户端的文件内容相同
- 常见文件后缀:.html,.txt,.jpg,.js,.css,mp3,avi
- 动态文件:服务端执行程序,返回执行的结果,服务器端和客户端的文件内容不相同
- 常见文件后缀:.php,jsp,asp
(3).http访问请求完整过程
一次完整的HTTP请求过程包括以下步骤:
-
DNS解析:浏览器首先进行DNS解析,查找域名的IP地址。浏览器会先检查自身的DNS缓存,如果没有找到,会继续检查系统DNS缓存和hosts文件。如果这些地方都没有找到,浏览器会向DNS服务器发起查询请求,通常通过UDP协议向DNS服务器发送递归查询请求。
-
TCP三次握手:在获取到域名对应的IP地址后,浏览器会与服务器建立TCP连接。这个过程称为TCP三次握手。客户端发送一个SYN包,服务器回应一个SYN-ACK包,最后客户端发送一个ACK包,完成三次握手,建立连接。
-
发起HTTP请求:建立TCP连接后,浏览器发起HTTP请求。这通常是通过GET请求获取HTML页面,但HTTP协议也支持POST、PUT、DELETE等其他请求方法。
-
服务器响应HTTP请求:服务器接收到请求后,处理并返回相应的数据,通常是HTML页面或其他资源。
-
浏览器解析和渲染:浏览器接收到数据后,解析HTML页面,加载页面中的资源(如CSS、JavaScript、图片等),并最终渲染页面呈现给用户。
-
关闭TCP连接:完成数据传输后,浏览器和服务器会关闭TCP连接
(4).http协议报文头部结构
1.http请求报文
2.http响应报文
三.Nginx服务
(1).Nginx的安装
安装前要先在Linux系统中配置本地yum源
命令:yum install -y nginx
启动nginx服务;要先关闭防火墙,以及确保selinux状态关闭
当前nginx服务在打开状态
(2).Nginx的配置
配置文件在/etc/nginx/nginx.conf
1.基于ip访问
在/usr/share/nginx/html目录中的index.html文件中
将index.htm写入index.html这个文件中,在浏览器中访问
此时就可以通过浏览器访问IP,基于/usr/share/nginx/html/index.html文件中的内容
修改默认端口
此时浏览器访问ip后面要加上端口号
在/usr/share/nginx/html/目录中也可以创建以.html结尾的文件,并写入内容,通过修改配置文件也能实现访问ip查看内容
在配置文件中加入index hhh.html
此时输入IP地址为添加文件的内容
也可以创建一个目录,在目录中创建以.html结尾的文件,写入内容也可以访问
在配置文件中修改
此时访问IP查看结果
可以在Linux系统中添加两个ip原有IP内容作对比
[root@Server ~]# ip a a 192.168.47.201/24 dev ens160
[root@Server ~]# ip a a 192.168.47.202/24 dev ens160
此时查看ip
[root@Server ~]# ip a
创建两个目录,并且创建目录下的以.html结尾的文件以及撰写内容
[root@Server ~]# mkdir /hjw/news.hjw.org/html/ -p
[root@Server ~]# mkdir /hjw/bbs.hjw.org/html/ -p
[root@Server ~]#
[root@Server ~]# echo new.hjw.org > /hjw/news.hjw.org/html/index.html
[root@Server ~]# echo bbs.hjw.org > /hjw/bbs.hjw.org/html/index.html
[root@Server ~]#
在/etc/nginx/conf.d(子配置目录)中建立一个以.conf结尾的子配置文件
[root@Server conf.d]# pwd
/etc/nginx/conf.d
[root@Server conf.d]#
[root@Server conf.d]#
[root@Server conf.d]# vim haha.conf
[root@Server conf.d]# systemctl restart nginx
[root@Server conf.d]#
进入到子配置文件中,撰写相关内容
此时我们就可以用这两个IP访问上一步中在两个目录中添加的index.html文件中的内容。
2.基于域名的访问控制
修改基于IP访问中子配置文件中的参数内容
[root@Server conf.d]# pwd
/etc/nginx/conf.d
[root@Server conf.d]#
[root@Server conf.d]# vim haha.conf
[root@Server conf.d]# systemctl restart nginx
此时还需要在我们window系统中修改主机名参数,将我们的域名添加
此时就可以通过域名来访问
(3).web服务器的访问控制
1.基于IP的访问控制
假如我们比较重要的日志文件在/usr/share/nginx/html/admin目录中的index.html文件中,由于比较机密,所以需要设置只能自己的主机访问
创建admin目录,并写入文件
在配置文件中设置访问控制
allow 为自己主机的ip,此时只有自己主机能够访问这个index.html文件

2.基于认证的访问控制
需要安装httpd服务
修改配置文件
此时浏览器访问ip就要输入我们所设置的用户名以及密码
四.web服务器的数据加密(https)
(1).https简介
- HTTP协议以明文方式发送内容,不提供任何方式的数据加密,
- HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等
- 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。
- HTTPS全称:Hyper Text Transfer Protocol over Secure Socket Layer ),是以安全为目标的 HTTP通道
- HTTPS并不是一个新协议,而是HTTP+SSL(TLS)
- 原本HTTP先和TCP直接通信,而加了SSL后,就变成HTTP先和SSL通信,再由SSL和TCP通信相当于SSL被嵌在了HTTP和TCP之间;
SSL 是“Secure Sockets Layer”的缩写,中文叫做“安全套接层”。它是在上世纪90年代中期,由网景 公司设计的。到了1999年,SSL 应用广泛,已经成为互联网上的事实标准。IETF 就把SSL 标准化。标准化之后SSL被改为 TLS(Transport Layer Security传输层安全协议)
(2).https握手流程

(3).部署https
1.生成密钥
[root@Server ~]# mkdir /etc/nginx/certs -p
[root@Server ~]# openssl req -newkey rsa:2048 -nodes -sha256 -keyout /etc/nginx/certs/hjw.org.key -x509 -days 365 -out /etc/nginx/certs/hjw.org.crt
....+...........+.+.........+..+.......+..+.+..+...............+.+......+...........+....+......+.....+.......+.....+.+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...........+....+..+...+.........+......+.+.....+.............+...+.........+.........+..+..................+.+......+.........+.....+...+...+.......+..+.+.........+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.......+......+..+...+......+.................................+...+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.+............+......+......+...+...+...+.+...+...........+.+......+..............+...................+.....+.+......+..+.+..+.......+.....+.+......+.....+...+.+..+............+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...+...+............+.+..+......+....+..+.+........+..........+.........+.....+.+.....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...........+.+..+....+...+..+....+.....+.+...........+..........+..+...+.........+....+.........+...+...+.........+.....+.+....................+.......+..+.......+......+..+...+....+.....+.+..+...+...+.+.........+...........+..................+..............................+.+.....+......+.+............+...........+....+...+...+.........+...+..+...............+.............+...+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:ShaanXi
Locality Name (eg, city) [Default City]:Xian
Organization Name (eg, company) [Default Company Ltd]:hjw
Organizational Unit Name (eg, section) []:linux
Common Name (eg, your name or your server's hostname) []:hjw
Email Address []:hjw@mail.com
2.配置nginx开启https功能
[root@Server ~]# mkdir /hjw/login.hjw.org/html -p
[root@Server ~]# echo logins.hjw.org > /hjw/login.hjw.org/html/index.html
[root@Server ~]# vim /etc/nginx/conf.d/haha.conf
进入子配置文件中添加此段话
注意:在我们没有强制访问加密时需要在网站前+https://跟网址;与域名访问控制一样,需要在Windows中添加域名。
3.强制访问加密
[root@Server ~]# vim /etc/nginx/conf.d/haha.conf
[root@Server ~]# systemctl restart nginx
进入子配置文件中添加以下内容
这样用户就不需要在域名前+https://访问
五.搭建动态网站
- 动态网站指网站内容可根据不同情况动态变更的网站,一般情况下动态网站通过数据库进行架构。
- 动态网站除了要设计网页外,还要通过数据库和编程序来使网站具有更多自动的和高级的功能。
- 动态网页:使用网页脚本语言,比如php、JSP等,通过脚本将网站内容动态存储到数据库,用户访问网站是通过读取数据库来动态生成网页的方法.
1.安装php并启动php服务
[root@Server ~]# yum install -y php
[root@Server ~]# systemctl enable --now php-fpm.service
2.生成php测试页
[root@Server ~]# mkdir /php
[root@Server ~]# cd /php/
[root@Server php]# pwd
/php
[root@Server php]# vim index.php
[root@Server php]# cat index.php
<?php
phpinfo();
?>
[root@Server php]#
3.配置web服务器对php页面的发布
[root@Server ~]# vim /etc/nginx/nginx.conf
[root@Server ~]# systemctl restart nginx
输入IP进入网站