静态资源是指根据开发者保存在项目资源目录中的路径访问静态资源html 图片 js css 音乐 视频
1、web基本概念
web服务器(web server):也称HTTP服务器(HTTP server),主要有 Nginx、Apache、Tomcat 等。
2、动态⻚⾯与静态⻚⾯的差别
(1)URL不同
静态⻚⾯链接⾥没有“?”
动态⻚⾯链接⾥包含“?”
(2)后缀不同 (开发语⾔不同)
静态⻚⾯⼀般以 .html .htm .xml 为后缀
动态⻚⾯⼀般以 .php .jsp .py等为后缀
(3)内容不同
静态⻚⾯的内容是固定的
动态⻚⾯的内容会因⽤户、浏览器、时间、地点等⽽发⽣变化。
3、HTTP 协议
HTTP协议是超⽂本传输协议的缩写,英⽂是Hyper Text Transfer Protocol。它是从WEB服务器传输超⽂本标记语⾔ (HTML) 到本地浏览器的传送协议。
(1)HTTP 原理
HTTP是⼀个基于TCP/IP通信协议来传递数据的协议,传输的数 据类型为HTML⽂件,图⽚⽂件,查询结果等。
HTTP协议⼀般⽤于B/S架构。浏览器作为HTTP客户端通过URL 向HTTP服务端即web服务器发送所有请求,web服务器收到客户端请求后进⾏响应。
(2)HTTP 特点
1、http协议⽀持客户端/服务端模式,也是⼀种请求/响应模式的协议。
2、简单快速:客户向服务器请求服务时,只需传送请求⽅法和路径。请求⽅法常⽤的有GET、HEAD、POST。
3、灵活:HTTP 允许传输任意类型的数据对象。传输的类型由 Content-Type 加以标记。除开可以响应字符串之外,还可以上传和下载⼆进制⽂件
4、⽆连接:限制每次连接只处理⼀个请求。服务器处理完请求,并收到客户的应答后,即断开连接,但是却不利于客户端与服务器保持会话连接,为了弥补这种不⾜,产⽣了两项记录 http 状态的技术,⼀个叫做 Cookie,⼀个叫做 Session。
5、⽆状态:⽆状态是指协议对于事务处理没有记忆,后续处理需要前⾯的信息,则必须重传。
4、URI 和 URL 的区别
(1)HTTP使⽤统⼀资源标识符(Uniform Resource Identifiers, URI)来传输数据和建⽴连接。
URI:Uniform Resource Identifier 统⼀资源标识符
URL:Uniform Resource Location 统⼀资源定位符
(2)URI 是⽤来标识⼀个具体的资源的,我们可以通过 URI 知道⼀ 个资源是什么,使⽤它就能够唯⼀地标记互联⽹上资源。
(3)URL 则是⽤来定位具体的资源的,标识了⼀个具体的资源位置。互联⽹上的每个⽂件都有⼀个唯⼀的。
(4)URL,也就是我们俗称的⽹址,它实际上是 URI 的⼀个⼦集。
(5)URI 不仅包括 URL,还包括 URN(统⼀资源名称),它们之间的关系如下:
5、HTTP 报⽂组成
(1)客户端发出请求:
GET /index.php HTTP/1.5/ Host:zgod.cn
(2)客户端浏览器发送出来的请求格式:
GET:这个部分只声明了请求⽅式,除了get ⽅式可能还有 post 等⽅式。GET 表示请求,POST 表示邮寄。
/index.php:这⾥是⼀个URL,表示了我们要访问的资源是哪 个。
HTTP/1.5/:这⾥表示的是客户端浏览器使⽤的协议版本是1.5。
Host:zgod.cn:这是请求是交给主机zgod.cn的。
6、HTTP 状态码
2xx:成功,200成功、201已经创建
3xx:重定向,304未修改
4xx:请求错误,404未找到⽂件、408请求超时
5xx:服务器错,500服务器内部错误、502⽹关错误
7、HTTP 报⽂格式
⼀个完整的http访问包含请求(request)和响应(response)
(1)请求报⽂
客户端发出的报⽂:包含了请求⾏,请求头部字段,通⽤头部字段,实体头部字段及报⽂主体。
请求⾏:客户端使⽤的请求⽅法,⽐如 GET,POST等等。同时也包含了URL信息和HTTP的版本号。
请求头部字段:它包含了请求的符加信息,⽐如客户端的信息, 响应的优先级等等。
通⽤头部字段:是请求报⽂和响应报⽂都会使⽤的报⽂内容。
实体头部字段:跟实体有关的资源信息,⽐如请求的实体更新时间等。
报⽂主体:⼀般来说,请求报⽂在使⽤GET ⽅法时,没有报⽂主体,使⽤ POTS ⽅法时,就会有。
8、常⻅请求⽅法(客户端向服务器)
1、GET: 去向服务器获取资源。即请求指定的⻚⾯信息,并返回实体主体。
2、POST:⽤来传输请求的实体主体。向指定资源提交数据进⾏处理请求。数据被包含在请求体中。POST请求可能会导致新的资源建⽴或已有资源修改。
3、PUT:从客户端向服务器传送的数据取代指定的⽂档内容。
4、HEAD:从服务器端获取报⽂⾸部信息,确定客户端输⼊的 URL 有效性和资源的更新⽇期。类似于get请求,只不过返回的响应没有具体内容,只⽤于获取头部。
5、OPTIONS:⽤来询问服务器⽀持哪些⽅法。即获取服务器⽀持的请求⽅法。
6、DELETE:⽤来删除⽂件的。请求服务器删除指定的⻚⾯。
9、HTTPS 协议
HTTP⼀般是明⽂传输,很容易被攻击者窃取重要信息,鉴于 此,HTTPS应运⽽⽣。
HTTPS 的全称为 (Hyper Text Transfer Protocolover Secure Socket Layer), HTTPS 和 HTTP 有很⼤的不同在于 HTTPS 是以安全为⽬标的 HTTP通道,在HTTP 的基础上通过传输加密和身份认证保证了传输过程的安全性。 HTTPS 在 HTTP 的基础上增加了 SSL 层,也就是说 HTTPS=HTTP+SSL。
HTTP使⽤明⽂传播,有三⼤⻛险 :
(1)窃听⻛险(eavesdropping):第三⽅可以获知通信内容。
(2)篡改⻛险(tampering):第三⽅可以修改通信内容。
(3)冒充⻛险(pretending):第三⽅可以冒充他⼈身份参与通信。
SSL/TLS协议是为了解决这三⼤⻛险⽽设计的,希望达到:
(1)所有信息都是加密传播,第三⽅⽆法窃听。
(2)具有校验机制,⼀旦被篡改,通信双⽅会⽴刻发现。
(3)配备身份证书,防⽌⽌身份被冒充。
10、HTTPS 安全通信的四⼤原则
(1)机密性
就是对数据的加密,在传输数据的过程当中,如果被⼈劫持了数据,那么这个加密的数据对⽅不能轻易获得。
(2)完整性
是指数据在发送到接收的过程当中没有被篡改,从⽽接收到的数据 是⼀个完整的数据内容。
(3)身份认证
数据传输的过程当中对于身份的验证,确认对⽅是传送数据过来的⼈。可以解决冒充这样的⻛险。
(4)不可否认性
不能否认已经发⽣的⾏为。⽐如刚才举例双⽅借钱需要有借据并且 签名按⼿印,如此⼀来就不能抵赖。
11、Apache 概念
最早的 web 服务程序,基于 http 协议提供⽹⻚浏览服务。
工作模式:
(1)Prefork:使⽤进程处理请求,在该模式中⽐较消耗内存,但稳定性⾼,如某个进程出现问题,不会影响其他请求。
(2)Worker:属于多进程模式,每个进程⽣成多个进程;在该模式下 消耗的资源⽐较⼩,适合⾼并发请求,但稳定性没有 Prefork 模式稳定。 ‘
(3)Event:该模式与 Worker 模式较为相似,不同之处在于在该模 式下可以解决keepalive ⻓连接时占⽤线程资源导致浪费的问题。
(4)keep-alive ⻓连接:TCP连接在发送后将仍然保持打开状态, 于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为 每个请求建⽴新连接所需的时间,还节约了带宽。实现⻓连接要客户 端和服务端都⽀持⻓连接。
12、搭建 apache 服务器
1、安装启动httpd服务
[root@web ~]# yum -y install httpd [root@web ~]# systemctl start httpd
2、查看安装情况以及安装的资源文件
[root@web ~]# rpm -qa | grep httpd [root@web ~]# rpm -ql httpd [root@web ~]# ls /etc/httpd/ [root@web ~]# vim /etc/httpd/conf/httpd.conf [root@web ~]# ls /var/www/html/
3、查看端口
[root@web ~]# netstat -lnput | grep http
4、设置防火墙
[root@web ~]# systemctl status firewalld //检查防火墙状态 [root@web ~]# systemctl start firewalld //开启防火墙 不能直接禁用防火墙,可以单独打开端口/服务 [root@web ~]# firewall-cmd --list-ports //查看防火墙打开的端口列表 [root@web ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent //打开防火墙的80端口 [root@web ~]# firewall-cmd --zone=public --add-service=http --permanent //设置防⽕墙放⾏apache [root@web ~]# firewall-cmd --list-all //查看当前区域下防⽕墙所有规则 public (active) target: default icmp-block-inversion: no interfaces: ens33 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: 打开服务不会马上生效,需要重启或者重载服务信息 [root@web ~]# firewall-cmd --reload //重载防⽕墙规则 [root@web ~]# firewall-cmd --list-all //查看当前区域下防⽕墙所有规则 public (active) target: default icmp-block-inversion: no interfaces: ens33 sources: services: ssh dhcpv6-client http ports: 80/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: 5、在资源目录中添加index.html,html服务会自动找到index文件 [root@web ~]# vim /var/www/html/index.html <!doctype html> <html> <head> <meta charset="utf-8"> <title>正方形</title> <style> div{ background-color:red; width:120px; height:120px; } </style> </head> <body> <div>正方形</div> <img src="1.jpg" </body> </html>