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://www.rhkb.cn/news/262510.html

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

相关文章

ES6 | (一)ES6 新特性(上) | 尚硅谷Web前端ES6教程

文章目录 📚ES6新特性📚let关键字📚const关键字📚变量的解构赋值📚模板字符串📚简化对象写法📚箭头函数📚函数参数默认值设定📚rest参数📚spread扩展运算符&a…

目标检测卷王YOLO卷出新高度:YOLOv9问世

论文摘要:如今的深度学习方法重点关注如何设计最合适的目标函数,使得模型的预测结果能够最接近真实情况。 同时,必须设计一个适当的架构,可以帮助获取足够的信息进行预测。 现有方法忽略了一个事实,即当输入数据经过逐层特征提取和空间变换时,大量信息将会丢失。 本文将深…

腾讯云宝塔Linux安装Mysql5.7

一、下载官方mysql包 wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm二、安装mysql包 rpm -ivh mysql-community-release-el7-5.noarch.rpm三、安装mysql yum install mysql-community-server -y四、启动数据库 systemctl start mysqld.service…

力扣算法Algorithm竞赛模板库(codeforces-go):含了算法竞赛中常用的数据结构和算法实现,助力开发者更高效地解决问题

1.算法Algorithm竞赛模板库(codeforces-go) 算法竞赛模板库,为算法竞赛爱好者提供了一系列精心设计的算法模板。这个库包含了算法竞赛中常用的数据结构和算法实现,助力开发者更高效地解决问题 一个算法模板应当涵盖以下几点&…

Commonjs 和 Es Module详解

一 前言 今天我们来深度分析一下 Commonjs 和 Es Module,希望通过本文的学习,能够让大家彻底明白 Commonjs 和 Es Module 原理,能够一次性搞定面试中遇到的大部分有关 Commonjs 和 Es Module 的问题。 带上疑问开始今天的分析: …

【Python笔记-设计模式】组合模式

一、说明 组合模式是一种结构型设计模式, 你可以使用它将对象组合成树状结构, 并且能像使用独立对象一样使用它们。 (一) 解决问题 处理树形结构:可以很好地处理树形结构的数据,使得用户可以统一对待单个对象和对象组合。统一接…

python coding with ChatGPT 打卡第21天| 二叉树:最近公共祖先

相关推荐 python coding with ChatGPT 打卡第12天| 二叉树:理论基础 python coding with ChatGPT 打卡第13天| 二叉树的深度优先遍历 python coding with ChatGPT 打卡第14天| 二叉树的广度优先遍历 python coding with ChatGPT 打卡第15天| 二叉树:翻转…

鸿蒙自定义侧滑菜单布局(DrawerLayout)

前言 为了实现安卓中的侧滑菜单布局效果,通过查找鸿蒙的布局控件,发现SideBarContainer控件有点像,但是使用中发现并不是很符合我们的UI交互效果,因此我在鸿蒙中通过自定义布局的方式实现,本文主要介绍该自定义控件如…

Git合并固定分支的某一部分至当前分支

在 Git 中,通常使用 git merge 命令来将一个分支的更改合并到另一个分支。如果你只想合并某个分支的一部分代码,可以使用以下两种方法: 1.批量文件合并 1.1.创建并切换到一个新的临时分支 首先,从要合并的源分支(即要…

缓存篇—缓存击穿

在很多场景下,我们的业务通常会有几个数据会被频繁地访问,比如秒杀活动,这类被频地访问的数据被称为热点数据。 如果缓存中的某个热点数据过期了,此时大量的请求访问了该热点数据,就无法从缓存中读取,直接…

DT DAY3 信号和槽

作业: 1> 思维导图 2> 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 btn3 new QPushButton("按钮3",this);btn3->resize(ui->btn2->width(),ui->b…

[linux]进程间通信(IPC)———共享内存(shm)(什么是共享内存,共享内存的原理图,共享内存的接口,使用演示)

一、什么是共享内存 共享内存区是最快的(进程间通信)IPC形式。一旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到内核,换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据。注意:…

【QT QML】软件打包,生成安装包

一、版本 Desktop 5.15.2 MinGW 64-bit二、打包 1. 编译Release版本 2. 在工程目录下找到Realse文件夹 3. 拷贝文件 ***-Desktop_Qt_5_15_2_MinGW_64_bit-Release - release - xxx.exe到一个新文件夹中 4. 开启相应打包工具(根据自己的编译器和版本选择&#xff0…

w29pikachu-ssrf实例

SSRF简介 SSRF是服务器端请求伪造 危害: 1.可以对服务器所在内网、本地进行端口扫描,获取一些服务的信息等 2.目标网站本地敏感数据的读取 3.内外网主机应用程序漏洞的利用 4.内外网web站点漏洞的利用 ssrf常用的相关协议: gopher://: 发…

QT基本组件

四、基本组件 Designer 设计师(重点) Qt包含了一个Designer程序,用于通过可视化界面设计开发界面,保存文件格式为.ui(界面文件)。界面文件内部使用xml语法的标签式语言。 在Qt Creator中创建文件时&#xf…

3.测试教程 - 基础篇

文章目录 软件测试的生命周期软件测试&软件开发生命周期如何描述一个bug如何定义bug的级别bug的生命周期如何开始第一次测试测试的执行和BUG管理产生争执怎么办(处理人际关系) 大家好,我是晓星航。今天为大家带来的是 测试基础 相关的讲解…

pclpy 可视化点云(多窗口可视化、单窗口多点云可视化)

pclpy 可视化点云(多窗口可视化、单窗口多点云可视化) 一、算法原理二、代码三、结果1.多窗口可视化结果2.单窗口多点云可视化 四、相关数据五、问题与解决方案1.问题2.解决 一、算法原理 原理看一下代码写的很仔细的。。目前在同一个窗口最多建立2个窗…

亿道丨三防平板丨加固平板丨三防加固平板丨改善资产管理

库存资产管理中最重要的部分之一是准确性;过时的库存管理技术会增加运输过程中人为错误、物品丢失或纸张损坏的风险。如今随着三防平板电脑的广泛使用,库存管理也迎来了好帮手,通过使用三防平板电脑能够确保库存管理、数据存储和记录保存的准…

《幻兽帕鲁》值得入手吗?MACOS 游戏 幻兽帕鲁MAC可以玩吗?

最近,一款名为《幻兽帕鲁》的游戏备受玩家瞩目。在追寻开放且多样化游戏体验的今天,《幻兽帕鲁》以其独特的玩法和世界观吸引了大批游戏爱好者。尽管游戏表面上看起来像是方舟的萌系版本,但其独特的特色却令人耳目一新。 首先,让我…

OceanBase数据迁移-从MySQL导入数据到OceanBase

把MySQL中的数据导入到OceanBase,分几个步骤: 1.准备一份MySQL测试数据集2.使用mydumper工具导出MySQL数据3.使用myloader工具导入到OceanBase4.验证测试数据集在OceanBase下的执行情况 1.准备一份MySQL测试数据集 1.1.从github下载mysql测试数据集&a…