http相关概念以及apache的功能(最详细讲解!!!!)

概念

互联网:是网络的网络,是所有类型网络的母集

因特网:世界上最大的互联网网络

万维网:www (不是网络,而是数据库)是网页与网页之间的跳转关系

URL:万维网使用统一资源定位符,描述了一个资源在服务器上的具体位置

/var/www/html  描述了login.html的所在位置

例:192.168.91.100 /     /是表示httpd软件的根,而不是91.100的根!!!

http:超文本传输协议,可以传输图片,视频,小程序。能实现此协议的有:apache,nginx,tomcat。

浏览器的访问过程

http协议 

MIME

 

如果在/etc/mime.types里面,则显示出来,如果不在此文件里面,则下载出来 

URI(i):统一资源标识,分别为URN、URL

URN:  统一资源命名,这个可以通过多个服务器下载,因为只要知道名字,哪台电脑都能下载

URL:   统一资源定位符,用于描述某服务器的具体位置,只能通过一台服务器下载

两者之间,是URN比URL的速度快

 

 URL的标准格式: 协议://(用户名:密码)基本省略 @主机名(www.jd.com:80端口号一般不写,默认80)/文件位置(192.168.91.100/a.jpg   表示描述访问这个主机的a的位置)?:表示查询

网站访问量

IP(独立ip):点击一次,统计一次

pv(点击量、访问量):页面浏览量,访问量 。用的最多

uv:独立访客

http请求访问的完整过程

 

http的工作机制

 

 

 静态资源与动态资源分开放,分为两个文件夹

 提高http连接性能

在接收请求中:

补充:长连接也称为持久连接,表示一次三次握手,下载多个资源,三次握手只要连上,就不断开了。 

 http协议版本

http 0.9 只有下载get,博客 qq都写不了

http 1.0 有上传也有下载,但是不支持长连接

http 1.1  有上传也有下载,支持长连接

httpd安装

yum安装的主配置文件在这,如果是编译安装,则主配置文件在自己设置的路径里面

http协议及报文头部结构

http请求报文

方法:get put ...一般是get

URL:文件路径

版本:http0.9  http1.0 http1.1

 例如使用telnet远程连接

这边的host属于头部信息,可以不加  

随后回车两遍

回车之后,可以看出test被下载出来

 

 响应报文

状态码

 

 举例说明:301

先进入配置文件中

访问192.168.91.101/test 就直接跳转到百度页面

打开网页,输入192.168.91.101/test  会直接出现百度

 接着关闭nginx

 再次输入192.168.91.101/test

还是会 出现百度页面,因为301是永久重定向

如果改成302

当 关闭nginx时,则不会出现百度页面,因为302是临时重定向

504:网关超时,因为处理时间过长,构建影响报文时间过长(因为客户寻求动态资源,nginx没有动态资源,因此要向java,php去要,这个过长耗时) 

面试题:如果网页访问不成功该如何处理?

1.先看状态码,看客户端还是服务端的问题 2.再看日志 

apache 

apache的功能:

无论是apache 还是nginx  对动态资源都不友好

apache的工作模式

prefork

 worker

 

event:事件驱动模型,centos8默认模型,会主动开启监听线程

 

MPM模式:修改工作模式 

 yum安装的httpd默认为prefork模式,如果要修改模式,可以通过mpm去修改

第二步,去修改此文件

可以看出,原本是prefork

prefork没有线程,只会开一个一个进程

如果要改成event,则将上面prefork注释掉

再进行查看pstree-p

 

httpd软件 

子配置文件 

 或者通过在主配置文件里面利用grep -i include找到子配置文件 子配置优先级高

 站点网页文档目录

 

打开另外一个终端,curl 192.168.68.3  就等于访问此IP地址下面 /var/www/html/index.html 这个地址

因为配置文件中写了 

如果在客户端,没有写你要访问的文件,则默认访问index.html

 

 http -t 检查语法错误

在配置文件中修改

 

修改成 功

修改配置文件 

修改配置文件,为了安全起见,要先做备份

1 监听地址

listen port 80

可以监听多个地址

例如

 

 

在另外一台服务器上面,curl一下 curl 192.168.68.3:80   192.168.68.3:9527

 

  

建立一个虚拟IP地址,也可以监听到

 查看listen配置

 在另一终端curl 192.168.68.111 还是可以访问的

或者将监听地址写入子配置文件中 以conf.d结尾的文件

将原本在主配置文件中的 listen 9527关闭 然后重新加载httpd文件

在另外一个终端测试一下,9527是否能访问,拒绝连接

随后,进入子配置文件中修改

在进入另外一个终端,curl192.168.68.3:9527

 

 

总结:在主配置文件中无法监听的端口号,也可以在自配置文件中添加,然后进行监听 

查看主配置文件里面的重要内容

 

随后在网页上输入ip+端口号 

2. 隐藏服务器版本信息 

另一个终端访问自己时是可以看见版本

在子配置文件中修改

先写一个子配置文件 vim /etc/httpd/conf.d/test.conf

 随后,在进入另外终端curl一下自己

持久连接

 第一步在子配置文件中去修改内容

KeepAlive On
KeepAliveTimeout 100
MaxKeepAliveRequests 2

第二步 修改文自配置文件,重启

 第三步在自己的服务端去创建3个文件

建立T T1 T2 三个文件

第四步 随后在另外一个终端去测试,先去下载telnet,去当做长连接

1 2 3 中间空格2次 

 

DOS加载动态模块设置

 

找到basic这模块,进行注释

 

 worker跟event模式的相关配置

指定开启进程数

此时系统开启5个进程

想要指定10个进程,则在主配置文件(子配置文件也可以)增加 startservices 10

定义Main server文档页面路径

默认的站点目录在/var/www/html 如果想修改

 需要再主配置文件中修改指明路径 +授权!

 

随后重启

 建立新的路径,并且给新路径写入文件

随后,在另外一个服务器去curl一下,成功

 

 别名 alias

同样要建立新路径,修改原路径,修改权限

在子配置文件中修改

如果没修改之前,test的位置在/var/www/中

 两者相同,访问192.168.68.100的test就等于访问192.168.68.100的/opt/blog

 然后在第二台主机上面curl,成功  test格式一定要注意

 定义站点默认主页面文件

 

 刚刚我们访问的是test,假设test下没有index..html文件

刚刚alias实验中,test的路径在/opt/blog中

所有再次切换里面,将index.html删除

进入网页,去访问一下test,出现forbidden是因为没有index.html文件 

紧接着,再拷贝点文件进入blog中

 进入子配置文件中去修改文件内容

最后检查并重启

 然后去网页访问192.168.68.3/test

默认没有允许软连接 

如果要添加软连接,还是在配置文件中修改

 虚拟主机

官方文档在/usr/share/doc/下

用于最多的就是域名

第一步,建立虚拟网卡

第二步进入子配置文件中修改(因为主配置文件内容太多,子配置文件清晰可见)

 修改权限

修改主机配置

 

保存后退出

然后去opt目录下建立html文件夹,再建立3/111的文件 

 

 弄好之后,在检查一下

最后,重启

 

在另外一台终端去测试

 

如果要是用端口号(IP地址一样,端口号不同)实验,其他步骤一样,只是在配置文件中 IP地址后面加上端口号

先打开监听端口号

 再另外一个终端测试,成功

使用域名 

在配置文件中修改,就将域名修改一下即可,其他操作一样

 随后重启

切换到第二台服务器,因为是域名,所以还要写一个域名解析

 

随后curl一下

基于客户端IP地址实现访问控制

黑名单

白名单

黑名单举例说明

 首先在子配置文件中修改

 保存退出后,建立/mnt/html ,并且写入内容

随后在另外一台终端查看,是可以成功的

让192.168.68.1的主机去访问192.168.68.3/test/  会被拒绝 所以成功

curl命令

 

 压力测试工具

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

HQYJ 2024-2-23 作业

自己实现单向循环链表的功能 整理思维导图 复习前面顺序表和链表的代码&#xff0c;重写链表逆置函数 1.实现单向循环链表的功能 loop_link_list.h文件 #ifndef __LOOP_LINK_LIST__ #define __LOOP_LINK_LIST__ #include<stdio.h> #include<stdlib.h> typedef…

Java零基础 - 三元运算符

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一个人虽可以走的更快&#xff0c;但一群人可以走的更远。 我是一名后…

SpringBoot对于SpringMVC的支持

创建项目 版本说明这里使用的 SpringBoot 2.0.0.Release SpringBoot对于SpringMVC的支持 在之前的开发中很多场景下使用的是基于xml配置文件或者是Java配置类的方式来进行SpringMVC的配置。一般来讲&#xff0c;初始的步骤如下所示 1、初始化SpringMVC的DispatcherServlet2、…

C++的string容器->基本概念、构造函数、赋值操作、字符串拼接、查找和替换、字符串比较、字符存取、插入和删除、子串

#include<iostream> using namespace std; #include <string> //string的构造函数 /* -string(); //创建一个空的字符串 例如: string str; -string(const char* s); //使用字符串s初始化 -string(const string& str); //使…

前端JS学习(二):BOM、DOM对象与事件

Web API基本认知 Web API 的作用&#xff1a;使用JS去操作html和浏览器 Web API 的分类&#xff1a;DOM(网页文档对象模型)、BOM(浏览器对象模型) BOM BOM的全称是 Browser Object Model&#xff0c;浏览器对象模型。也就是 JavaScript 将浏览器的各个组成部分封装成了对象&…

修改单据转换规则后保存报错提示

文章目录 修改单据转换规则后保存报错提示 修改单据转换规则后保存报错提示

区块链与Solidity详细介绍及基本语法使用

一、区块链简介 区块链是一种分布式数据库技术&#xff0c;它以块的形式存储数据&#xff0c;并通过加密算法确保数据的安全性。每个块包含一系列交易&#xff0c;并通过哈希值与前一个块相连接&#xff0c;形成一个链式结构。这种结构使得数据难以被篡改&#xff0c;因为任何对…

2024.2.22 C++QT 作业

思维导图 练习题 1>完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示”登录成功“&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳转到其他界面。如果账…

线程池的基础使用和执行策略

什么是线程池 线程池&#xff0c;字面意思就是一个创建线程的池子&#xff0c;它的特点就是&#xff0c;在使用线程之前&#xff0c;就一次性把多个线程创建好&#xff0c;放到"池”当中。后面需要执行任务的时候&#xff0c;直接从"线程池"当中通过线程执行。…

通俗易懂分析:Vite和Webpack的区别

1、对项目构建的理解 先从浏览器出发&#xff0c; 浏览器是由浏览器内核和JS引擎组成&#xff1b;浏览器内核编译解析html代码和css代码&#xff0c;js引擎编译解析JavaScript代码&#xff1b;所以从本质上&#xff0c;浏览器只能识别运行JavaScript、CSS、HTML代码。 而我们在…

MATLAB环境下基于短时傅里叶变换和Rényi熵的脑电信号和语音信号分析

傅里叶变换是不能很好的反映信号在时域的某一个局部范围的频谱特点的&#xff0c;这一点很可惜。因为在许多实际工程中&#xff0c;人们对信号在局部区域的特征是比较关心的&#xff0c;这些特征包含着十分有用的信息。这类信号因为在时域(或者是空间域)上具有突变的非稳定性和…

Java基于SSM+JSP的超市进销库存管理系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

深入了解Git

1.1 Git 的工作流程简介 克隆 Git 资源作为工作目录 在克隆的资源上添加或修改文件 如果其他人修改了&#xff0c;你可以更新资源 在提交前查看修改 提交修改 在修改完成后&#xff0c;如果发现错误&#xff0c;可以撤回提交并再次修改并提交 1.2 Git 工作区、暂存区和版…

自存 angular material design 表单输入框lable右对齐样式

单个输入框的文字lable放输入框左边实现 material design 的组件库示例没有文字描述放左边的样式 ,所以mat-lable并没有放在mat-form-field中 <div class"input-container col-6"><mat-label>商品售价<span class"text-error">*</spa…

【springBoot】springAOP

AOP的概述 AOP是面向切面编程。切面就是指某一类特定的问题&#xff0c;所以AOP也可以理解为面向特定方法编程。AOP是一种思想&#xff0c;拦截器&#xff0c;统一数据返回和统一异常处理是AOP思想的一种实现。简单来说&#xff1a;AOP是一种思想&#xff0c;对某一类事务的集…

基于springboot+vue的中小型医院网站(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

TDesign Vue Next Starter中后台项目的生产环境部署与CSP内容安全策略、CORS跨源资源共享和服务后端开发

TDesign Vue Next Starter中后台项目的生产环境部署与CSP内容安全策略、CORS跨源资源共享和服务后端开发 目录 TDesign Vue Next Starter中后台项目的生产环境部署与CSP内容安全策略、CORS跨源资源共享和服务后端开发 一、TDesign Vue Next Starter中后台项目模板 1.1、项目…

Ubuntu20.04 查看系统版本号

目录 uname -auname -vlsb_release -acat /etc/issuecat /proc/version uname -a 查看系统发行版本号和操作系统版本 uname -v 查看版本号 lsb_release -a 查看发行版本信息 cat /etc/issue 查看系统版本 cat /proc/version 查看内核的版本号

vivado FSM Components

Vivado合成功能 •同步有限状态机&#xff08;FSM&#xff09;组件的特定推理能力。 •内置FSM编码策略&#xff0c;以适应您的优化目标。 •FSM提取默认启用。 •使用-fsm_extraction off可禁用fsm提取。 FSM描述 Vivado综合支持Moore和Mealy中的有限状态机&#xff08;…

ROX amine,Rhodamine X amine,可和羧酸等官能团反应

​您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;Rhodamine X amine, ROX amine &#xff0c;Rhodamine X amine&#xff0c; ROX NH2&#xff0c;氨基ROX &#xff0c;ROX氨基&#xff0c;Rhodamine X氨基 一、基本信息 【产品简介】&#xff1a;ROX can also b…