Web服务器与Apache(LAMP架构+搭建论坛)

一、Web基础

1.HTML概述

HTML(Hypertext Markup Language)是一种标记语音,用于创建和组织Web页面的结构和内容,HTML是构建Web页面的基础,定义了页面的结构和内容,通过标记和元素来实现

2.HTML文件结构

<html>

       <head>网页的头部信息</head>

       <body>网页内容</body>

</html>

3.HTML基本标签

基本标签含义
<html>HTML文档的根元素,包含文档的全部内容
<head>文档的头部,通常用于引入样式表、脚本以及设置文档的元信息
<title>文档的标题,显示在浏览器的标题栏或标签页上
<body>文档的主体部分,包含页面上的可见内容
<h1>到<h6>标题标签,用于表示不同级别的标题,<h1>是最高级别的标题
<p>段落标签,用于表示一个段落
<a>链接标签,用于创建一个超链接,并指定链接的目标URL
<img>图像标签,用于插入图像到页面中,并指定图像的源文件路径
<ul>和<li>无序列表标签,用于创建一个无序列表和列表项
<ol>和<li>有序列表标签,用于创建一个有序列表和列表项
<div>通用的容器标签,用于分组和组织页面中的内容
<span>内联容器标签,用于对文本的一部分进行特殊处理,如应用样式或事件

4.URI和URL

URI:统一资源标识,分为URL和URN

URL:统一资源定位符,用于描述某服务器某特定资源位置

URI和URL区别:

定义范围:URI是一个广义的概念,用于标识和命名互联网上的资源,可以是URL、URN或其他形式,URL是URI的一种具体实现形式,用于资源的定位和访问

功能重点:URI强调资源的标识性,用于唯一标识和命名资源,URL则更注重资源的位置性,其中包含了定位和访问资源所需的详细信息

二、静态资源和动态资源

静态资源和动态资源是两种常见的网络资源类型

静态资源和动态资源的区别在于内容是否固定不变

1.静态资源

静态资源指的是在服务器上保存的文件,其内容在请求和传输过程中不发生变化

静态资源可以是图片、CSS样式表、JavaScript文件、HTML文件等

静态资源的请求一般是通过URL直接访问,当客户端发送请求时,服务器直接将这些文件返回给客户端,不进行任何处理

2.动态资源

动态资源则是在服务器端通过执行脚本或程序生成的内容,需要占用服务器的资源

服务器会根据请求中的参数和数据,执行相应的脚本或程序来生成动态内容,然后将生成的内容返回给客户端

动态资源可以是动态网页、API接口等

三、HTTP协议

1.HTTP协议

HTTP协议采用了请求/响应模型

客户端向服务器发送一个请求,请求包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构

服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上服务器信息、实体元信息以及可能的实体内容

2.HTTP协议版本

http 0.9功能简陋,仅支持GET方法
http 1.0相较以前版本可以支持POST、HEAD方法,支持HTML文件以外的其他类型,但不支持持久连接
http 1.1支持持久连接,即在一个TCP连接里面完成多个http请求和响应,但是每个请求和响应是按照顺序一一对应的
http 2.0http 2.0 支持完全多路复用,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应( 也支持压缩,服务端主动推送)

3.HTTP方法作用

HTTP定义了一组请求方法,用于指定客户端对资源的操作方式,这些请求命令成为HTTP方法

方法作用
GET对服务器资源获取的简单请求
PUT向服务器上传指定的资源,如果资源已存在,则替换为新的内容
POST向服务器提交数据
DELETE删除服务器上的某些资源
HEAD请求页面的首部,获取资源的元信息
CONNECT用于ssl隧道的基于代理的请求
OPTIONS返回所有可用的方法,常用于跨域
TRACE追踪 请求–响应的传输路径

1、GET请求会向数据库发索取数据的请求,从而来获取信息,该请求不会产生副作用。无论进行多少次操作,结果都是一样的

2、与GET不同的是,PUT请求是向服务器端发送数据的,从而改变信息,无论进行多少次PUT操作,其结果并没有不同

3、POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,几乎目前所有的提交操作都是用POST请求的

4、DELETE请求顾名思义,就是用来删除某一个资源的

4.HTTP请求访问的完整过程

建立连接>接收请求>处理请求>访问资源>构建响应报文>发送响应报文>记录日志

5.HTTP状态码

HTTP状态码是服务器在处理请求时返回给客户端的数字代码,用于表示请求的处理结果

HTTP协议状态码分类

状态码首位范围含义
1xx100-101信息提示,表示请求已被接收,需要进一步处理
2xx200-206成功,表示请求已成功处理
3xx300-305重定向,表示需要进一步的操作以完成请求
4xx400-415客户端错误,表示客户端发送的请求有错误
5xx500-505服务器错误,表示服务器在处理请求时发生了错误

HTTP协议常用的状态码

状态码含义
200一切正常
301永久重定向
302临时重定向
307浏览器内部重定向
401用户名或密码错误
403禁止访问(客户端IP地址被拒绝)
404请求的资源在服务器上不存在
414请求URL头部过长
500服务器内部错误。比如脚本错误,编程语言语法错误
502无效网关
503服务器暂时无法处理请求,通常用于服务器维护或过载
504网关请求超时。程序执行时间过长导致响应超时,例如程序需要执行20秒,而nginx最大响应等待时间为10秒,这样就会出现超时

产生502(无效网关)的原因:

1.数据包没有送到网卡,网络问题

2.数据包送进去了(交换机能抓到包),但是网卡没收到,网卡问题或防火墙问题

3.网卡接收到了,处理不了,服务问题。(比如服务器当前连接太多,响应太慢;页面素材太多,带宽不够。)

6.HTTP的请求报文和响应报文

1.请求报文

curl  -v  192.168.7.20 |head   ##从此服务器获取内容

#状态行

>GET / HTTP/1.1

#HTTP GET请求,即获取指定路径的内容,请求的路径为根路径("/"),表示请求服务器的默认页面

#头部字段

>User-Agent:curl/7.29.0

#指定客户端使用的User-Agent,该请求由curl/7.29.0发送

>Host:192.168.7.20

#指定了要访问的服务器的主机地址

>Accept:*/*

#指定了客户端可以接受的响应内容的类型,表示客户端可以接受任何类型的内容

2.响应报文

curl  -v  192.168.7.20 |head   ##从此服务器获取内容

#响应状态行

< HTTP/1.1 403 Forbidden

#表示请求被拒绝,状态码403表示禁止访问

#头部字段

<Date:Fri,21 Jun 2024 06:30:18 GMT

#表示响应的日期和时间

<Server:Apache/2.4.6 (CentOS)

#表示服务器正在使用的软件名称和版本

<Last-Modified:Thu,16 Oct 2014 13:20:58 GMT

#表示所请求资源的最后修改日期和时间

<ETag:"1321-5058a1e728280"

#表示所请求资源的实体标签

<Accept-Ranges:bytes

#服务器是否支持断点续传

<Content-Length:4897

#响应实体主体的长度

<Content-Type:text/html;charset=UTF-8

#实体主体的类型和字符编码,表示响应内容是以UTF-8编码的HTML文本

7.HTTP连接优化

1.并行连接:并行连接通过同时建立多个连接 ,使得客户端可以并发地发送多个请求,以提高并发性和响应速度

2.持久连接 :持久连接允许客户端和服务器之间在单个连接上发送多个HTTP请求和响应 ,而不是每个请求都要重新建立连接

3.管道化连接:管道化连接是一种在持久连接上发送多个请求而无需等待服务器响应的机制

四、httpd

1.安装

2.httpd相关文件配置

#主配置文件

/etc/httpd/conf/httpd.conf

#子配置文件

/etc/httpd/conf.d/*.conf

#模块加载的配置文件

/etc/httpd/conf.d/conf.modules.d/

#检查配置语法

httpd -t或apache2  -t

#站点网页文档根目录

/var/www/html

3.服务单元文件和主服务器程序文件

服务单元文件

/usr/lib/systemd/system/httpd.service

配置文件:/etc/sysconfig/httpd

主服务器程序文件

/usr/sbin/httpd

4.模块文件

/etc/httpd/modules

/usr/lib64/httpd/modules

5.httpd服务控制和启动(命令部分)

#开机自启动/开机自动关闭httpd服务

systemctl enable |disable httpd.service

开启httpd服务的三种方式(任选其一)

systemctl start httpd.service

apachectl start

service httpd start

重启httpd服务的三种方式(任选其一)

systemctl restart httpd.service

apachectl restart

service httpd restart

停止httpd服务的三种方式(任选其一)

systemctl stop httpd.service

apachectl stop

service httpd stop

查看httpd服务的运行状态

systemctl status httpd

配置文件语法检查的两种方式(任选其一)

apachectl configtest

service httpd configtest

五、Apache的三种工作模式

1.Worker模式

 工作线程(Worker)模式适用于资源利用率高的场景

1.Apache在启动时会创建一组预定义数量的线程池
2.每个线程都可以处理多个请求,线程之间共享服务器的内存和资源
3.当一个请求到达服务器时,一个空闲的线程将被选择来处理该请求
4.线程可能会处理多个请求,通过线程池重用来更高效地处理请求
5.这种模式下需要注意线程安全的问题,以确保多个线程间的数据访问不会导致冲突

2.Event模式

事件驱动(Event MPM)模式适用于高并发场景

1.在事件驱动模式下,Apache使用I/O多路复用(如epoll或kqueue)来监听多个连接
2.当一个连接有数据到达时,Apache将发出事件通知,表示该连接有可读数据
3.Apache将事件分发给一个空闲的工作线程来处理请求
4.工作线程处理请求的过程通常是非阻塞的,通过事件驱动方式读取数据和发送响应
5.这种模式下可以处理大量的并发请求,因为它不需要为每个请求创建一个新的进程或线程

3.Pre-Fork模式

预产生(Pre-Fork)模式适用于稳定性要求高的场景

1.Apache在启动时会创建一组预定义数量的子进程(称为工作进程)
2.每个工作进程都是独立的,有自己的内存空间和资源
3.当一个请求到达服务器时,主进程选择一个空闲的工作进程来接受该请求
4.选中的工作进程处理该请求,生成响应并将其发送回客户端
5.这种模式下每个工作进程只能处理一个请求,处理完请求后会继续等待下一个请求

六、Cookie和Session

Cookie和Session都用于解决HTTP协议无状态问题

1.Cookie

Cookie是服务器在用户的浏览器中存储的小型文本文件。当用户访问一个网站时,服务器可以通过HTTP响应的Set-Cookie标头将一个或多个Cookie发送给浏览器。浏览器会将这些Cookie存储在用户的计算机上,并在以后的请求中将它们发送回服务器。每个Cookie都包括一个名称、一个值和一些可选的属性,如过期时间、域名、路径等。服务器可以使用Cookie来存储用户的偏好设置、会话标识符、购物车数据等。浏览器会在每次请求中自动发送与特定域名相关联的Cookie,使得服务器能够识别用户

2.Session

Session是在服务器端存储用户状态的一种机制。当用户首次访问一个网站时,服务器会为该用户创建一个唯一的会话标识符(Session ID)。这个标识符通常被存储在Cookie中,但也可以通过其他方式(如URL参数)进行传递。服务器使用Session来存储用户信息和其他相关数据。在每个请求中,浏览器会将Session ID作为Cookie发送给服务器,使得服务器能够识别并恢复与该用户相关联的会话数据。Session数据通常存储在服务器的内存或持久化存储中

七、httpd配置

httpd虚拟主机的作用是通过一个物理服务器来托管多个域名或网站,实现资源共享、个性化配置和多域名指向不同网站的功能,提高服务器资源利用率和降低成本

1.虚拟主机(基于ip地址)

原理:每个虚拟主机分配一个唯一的IP地址,并通过服务器软件(httpd)来指定每个虚拟主机使用的IP地址,客户机访问服务器时,服务器会根据客户机的IP地址,在配置文件中寻找对应关系,根据对应关系跳转

服务端配置:

进入主站点配置文件

vim /etc/httpd/conf/httpd.conf

#开启域名服务

ServerName www.example.com:80

#指定主站点到/data

DocumentRoot "/data"
<Directory "/data">
    Require all granted
</Directory>

#复制虚拟主机模板文件到/etc/httpd/conf.d并改名为xuni.conf

cp /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf  /etc/httpd/conf.d/xuni.conf

#移动到/etc/httpd/conf.d目录下编辑xuni.conf配置

cd /etc/httpd/conf.d

vim  xuni.conf

<VirtualHost 192.168.7.10:80>
    DocumentRoot "/data/eva"
    ServerName www.eva.com
    ErrorLog "/var/log/httpd/dummy-host.example.com-error_log"
    CustomLog "/var/log/httpd/dummy-host.example.com-access_log" common
</VirtualHost>

<VirtualHost 192.168.7.99:80>
    DocumentRoot "/data/esdeath"
    ServerName www.esdeath.com
    ErrorLog "/var/log/httpd/dummy-host2.example.com-error_log"
    CustomLog "/var/log/httpd/dummy-host2.example.com-access_log" common
</VirtualHost>

<Directory "/data">
    Require all granted
</Directory>

#建立data文件下的esdeath和eva并输入内容,重启httpd配置文件

添加虚拟主机的网卡:有几台虚拟主机加几个

ipconfig ens33:0 192.168.7.11/24

此时拿客户端访问服务端ip是否出现内容:

2.虚拟主机(基于域名)

cd /etc/httpd/conf.d

vim xuni.conf

IP、端口相同,域名不同

 在客户机编辑本地hosts文件,添加地址映射:

用客户机访问服务端,查看是否成功:

3.虚拟主机(基于端口)

cd /etc/httpd/conf.d

vim xuni.conf

IP、域名相同,端口号不同

添加监听8080端口

listen 8080

拿客户机curl服务端是否成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/859728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

压缩pdf文件大小在线,在线免费压缩pdf

在现在办公中&#xff0c;PDF文档已经成为我们日常工作中不可或缺的一部分。然而&#xff0c;随着文档内容的不断丰富&#xff0c;PDF文件的大小也逐渐增大&#xff0c;这不仅占用了大量的存储空间&#xff0c;而且在传输和共享时也显得尤为不便。所以有时候我们需要把pdf压缩小…

# Kafka_深入探秘者(4):kafka 主题 topic

Kafka_深入探秘者&#xff08;4&#xff09;&#xff1a;kafka 主题 topic 一、kafka 主题管理 1、kafka 创建主题 topic 命令 1&#xff09;命令&#xff1a; # 切换到 kafka 安装目录 cd /usr/local/kafka/kafka_2.12-2.8.0/# 创建一个名为 heima 的 主题 bin/kafka-topic…

揭秘!速卖通卖家如何靠自养号测评打造爆款?

然而&#xff0c;许多商家对测评的认识存在严重的误区&#xff0c;他们错误地以为仅仅通过几次草率的测评就能快速塑造出爆款产品。实际上&#xff0c;测评远非如此简单&#xff0c;它是一个需要深思熟虑、精心策划和持续投入的过程。测评的真正价值在于帮助平台精准地把握产品…

Java-LinkedList和ArrayList的区别、Get/Add操作性能分析以及常见的遍历方式

LinkedList和ArrayList的区别、Get/Add操作性能分析以及常见的遍历方式 一、LinkedList基本特性主要方法 二、ArrayList初始化及基本操作ArrayList注意点&#xff08;待完善&#xff09;代码示例 三、ArrayList与LinkedList的区别四、Get/Add操作性能分析五、LinkedList遍历方式…

中霖教育:二级建造师报名后缺考有影响吗?

在完成二级建造师的报名程序后&#xff0c;考生无法进行退考。如果是不参加考试&#xff0c;可以选择弃考。弃考对个人并没有负面影响&#xff0c;缺席考试的话也不会被记录在个人诚信档案中。当然&#xff0c;如果弃考的话此次考试的成绩将被记为0&#xff0c;下一年参加考试按…

关于电机的线性思考

当大多数工程师听到电机这个词时&#xff0c;他们自然地想到旋转装置&#xff0c;例如有刷直流、无刷直流、步进电机或变频原动机。但是电机不一定是旋转的&#xff0c;很多时候设计需要直线运动。一种解决方案是添加某种齿轮或皮带装置来转换旋转运动&#xff0c;这种解决方案…

基于SpringBoot的实习管理系统设计与实现

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a; Java 数据库&#xff1a; MySQL 技术&#xff1a; SpringBoot框架&#xff0c;B/S模式 工具&#xff1a; MyEclipse&#xff0c;Tomcat 系统展示 …

预备役二招算法测试题解

这次题目出的都是一些偏向于基础的题目&#xff0c;就是一些简单的模拟&#xff0c;思维&#xff0c;以及基础算法&#xff08;二分&#xff0c;前缀和&#xff09; &#xff08;点击题目标题&#xff0c;进入原题&#xff09; 我是签到题 题解&#xff1a;就是说给你 t 组数据…

每日鲜语携手中国国家高尔夫球队队员殷若宁征战巴黎,打响中国高端鲜奶品牌“鲜”声量

近日&#xff0c;高端鲜奶品牌每日鲜语宣布携手蒙牛品牌代言人、中国国家高尔夫球队队员殷若宁&#xff0c;共赴巴黎奥运赛场&#xff0c;为梦想挥杆而上。邀请众多消费者开启高品质、健康的生活方式。此举不仅彰显了每日鲜语作为高端鲜奶新标杆的品牌定位&#xff0c;也同时延…

vue2.0项目安装依赖 sass 报错

1、报错代码&#xff1a; 2、原因&#xff1a;项目有点老&#xff0c;vue2的版本&#xff0c;所以node-sass在npm安装的时候大概率的会安装出错&#xff0c;或下载时间过长&#xff0c;因此考虑用dart-sass来替换。 npm install node-sassnpm:dart-sass3、然后就可以成功运行了…

8.项目结构——黑马程序员Java最新AI+若依框架项目

目录 前言一、后端1.ruoyi-admin2.ruoyi-common3.ruoyi-framework4. ruoyi-generator(可删除)5.ruoyi-quartz&#xff08;可删除&#xff09;5.ruoyi-system6. ruoyi-ui7.sql8.依赖关系9. 总结 二、前端三、SQL 前言 提示&#xff1a;本篇叙述若依前后端项目结构 一、后端 1…

无线领夹麦克风哪个品牌音质最好,揭秘无线麦克风哪个牌子最好!

​在这个数字化、信息化的时代&#xff0c;短视频和直播已经成为了人们生活中不可或缺的一部分。而无线麦克风&#xff0c;则是这些活动中不可或缺的重要工具。它们能够轻松捕捉声音&#xff0c;让内容更加生动、真实。然而&#xff0c;市场上的无线麦克风种类繁多&#xff0c;…

51-60 CVPR 2024 最佳论文 | Generative Image Dynamics

在2023年11月&#xff0c;谷歌研究院发布了一项令人瞩目的研究成果——Generative Image Dynamics&#xff08;生成图像动力学&#xff09;。这项技术的核心是将静态的图片转化为动态的、无缝循环的视频&#xff0c;而且更令人兴奋的是&#xff0c;这些生成的视频还具有交互性。…

AI赋能天气:微软研究院发布首个大规模大气基础模型Aurora

编者按&#xff1a;气候变化日益加剧&#xff0c;高温、洪水、干旱&#xff0c;频率和强度不断增加的全球极端天气给整个人类社会都带来了难以估计的影响。这给现有的天气预测模型提出了更高的要求——这些模型要更准确地预测极端天气变化&#xff0c;为政府、企业和公众提供更…

【转】5种常见的网络钓鱼攻击以及防护手段

2022 年 Verizon 数据泄露调查报告指出&#xff0c;去年 75% 的社会工程攻击涉及网络钓鱼&#xff0c;仅去年一年就有超过 33 万个账户被网络钓鱼&#xff0c;网络钓鱼占整体社会工程攻击的 41%。 不能将所有责任归咎于员工&#xff0c;因为薄弱的安全意识建设及宣教是大部分漏…

XSS跨站攻击漏洞

XSS跨站攻击漏洞 一 概述 1 XSS概述 xss全称为&#xff1a;Cross Site Scripting&#xff0c;指跨站攻击脚本&#xff0c;XSS漏洞发生在前端&#xff0c;攻击的是浏览器的解析引擎&#xff0c;XSS就是让攻击者的JavaScript代码在受害者的浏览器上执行。 XSS攻击者的目的就是…

Windows 中 Chrome / Edge / Firefox 浏览器书签文件默认存储路径

1. Chrome 浏览器 按组合键 Win R&#xff0c;打开运行对话框&#xff0c;输入 %USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default或在Chrome 浏览器地址栏输入 chrome://version查看【个人资料路径】 2. Edge 浏览器 按组合键 Win R&#xff0c;打开运行对…

GD32F4xx 移植agile_modbus软件包与电能表通信

目录 1. agile_modbus1.1 简介1.2 下载2. agile_modbus使用2.1 源码目录2.2 移植3. 通信调试3.1 代码3.3 通信测试1. agile_modbus 1.1 简介 agile_modbus是一个轻量级的Modbus协议栈,主要特点: 支持RTU和TCP协议,采用纯C语言开发,不涉及任何硬件接口,可直接在任何形式的…

Java流程控制语句

Java流程控制语句有三种&#xff1a; 顺序结构、分支结构和循环结构。 顺序结构&#xff1a; 顺序结构语句是Java程序默认的执行流程&#xff0c;按照代码的先后顺序&#xff0c;从上到下依次执行。 原文链接&#xff1a; Java流程控制控制语句 - 红客网络编程与渗透技术 示例…

查看es p12证书文件过期方法

查看证书过期时间: openssl pkcs12 -in elastic-certificates.p12 -nokeys -out elastic-certificates.crt (需要输入证书生成时配置密码) openssl x509 -enddate -noout -in elastic-certificates.crt