Linux入门攻坚——26、Web Service基础知识与httpd配置-2

http协议

URL:Uniform Resource Locator,统一资源定位符
  URL方案:scheme,如http://,https://
  服务器地址:IP:port
  资源路径:
  示例:http://www.test.com:80/bbs/index.php

基本语法:
  <scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
    params:参数,如 http://www.test.com/bbs/hello;gender=f
    query: 如 http://www.test.com/bbs/item.php?username=tom&title=abc
    frag:如 http://www.test.com/bbs/item.php#title-2

相对URL、绝对URL

http协议:
  版本:http/0.9、http/1.0、http/1.1、http/2.0
  stateless:无状态的协议,服务器无法持续追踪访问者来源。
    cookie机制,session机制
  http事务:请求request  和 响应response
报文语法格式:
  request报文:
    <method> <request-URL> <version>
    <headers>

    <entity-body>
  response报文:
    <version> <status> <reason-phrase>
    <headers>

    <entity-body>
  method:请求方法,标明客户端希望服务器对资源执行的动作,主要有GET、HEAD、POST等
  version:版本,HTTP/<major>.<minor>
  status:状态码,三位数字,五大类,1XX、2XX、3XX、4XX、5XX、
  reason-phrase:状态码标记状态的简要描述
  headers:每个请求或响应报文可包含任意个首部,首部名称:值
  entity-body:请求体或响应体,请求或响应时附加的数据,

协议查看或分析的工具:tcpdump,tshark,wireshark

首部分类:
  通用首部、请求首部、响应首部、实体首部、扩展首部

curl命令

curl是基于URL语法在命令行方式下工作的文件传输工具,支持FTP,FTPS,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE及LDAP等协议。curl支持HTTPS认证,并支持HTTP的PSOT、PUT等方法,FTP上传,Kerberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证,下载文件断点续传,上载文件断点续传,http代理服务器管道(proxy tunneling),还支持IPv6,socks5代理服务器,通过http代理服务器上传文件到FTP服务器等。

curl [options]  [URL...]
curl常用选项:
  -A/--user-agent <string>  :设置用户代理发送给服务器
  -basic:使用HTTP基本认证
  --tcp-nodelay:使用TCP_NODELAY选项
  -e/--referer <URL>:来源网址
  --cacert <file> :CA证书(SSL)
  --compressed:要求返回是压缩的格式
  -H/--header <line>:自定义头信息传递给服务器
  -I/--head :只显示响应报文首部信息
  --limit-rate <rate>:设置传输速度
  -u/--user <user[:password]> :设置服务器的用户和密码
  -0/--http1.0:使用HTTP1.0 


elinks工具:elinks -dump URL

使用mod_deflate模块压缩页面优化传输速度

SetOutputFilter DEFLATE

# mod_deflate configuration

# Restrict compression to these MIME types
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css

#Level of compression (Highest 9 - Lowest 1)
DeflateCompressionLevel 9

#Netscape 4.x has some problems
BrowserMatch ^Mozilla/4 gzip-only-text/html

#Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip

# MSIE masquerades as Netscape,but it is fine
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

没有压缩前:

未启用压缩前,响应标头的Content-Length为20199,与使用wc计算的长度相同,没有Content-Encoding。

配置httpd,支持压缩:

httpd服务器配置压缩后,响应标头标志了Content-Encoding:gzip,表明使用了gzip压缩,Content-Length为6608,比原文的20199明显缩小。请求标头中Accept-Encoding表明浏览器支持gzip和deflate压缩。

使用curl测试:

HTTPS

http over ssl = https   默认端口:443/tcp
  ssl:v3,很少使用
  tls:v1  ,现在互联网上一般都使用这个协议
  https://

SSL会话的简单过程描述:
  (1)客户端发送可供选择的加密方式,并向服务器请求证书;
  (2)服务器端发送证书以及选定的加密方式给客户端
  (3)客户端证书验证:
    如果信任给其发证书的CA:
      (a)验证证书来源的合法性:用CA的公钥解密证书上数字签名;
      (b)验证证书的内容的合法性:完整性验证
      (c)检查证书的有限期限;
      (d)检查证书是否被吊销;
      (e)证书中拥有者的名字,与访问的目标主机要一致;
    (4)客户端生成临时会话密钥(对称密钥),并使用服务器端的公钥加密此数据发送给服务器,完成密钥交换;
    (5)服务器用此密钥加密用户请求的资源,响应给客户端;

  注意:SSL会话是基于IP地址创建,所以单IP的主机上,仅可以使用一个https虚拟主机

配置httpd支持https

1、为服务器申请数字证书;
  测试:通过建立私有CA进行证书发放;
    (1)创建私有CA
    (2)在服务器创建证书签署请求
    (3)CA签证
2、配置httpd支持使用ssl,及使用的证书:
  # yum install -y mod_ssl
  配置文件:/etc/httpd/conf.d/ssl.conf
    DocumentRoot
    ServerName
    SSLCertificateFile
    SSLCertificateKeyFile
3、测试基于https访问相应的主机:
  # openssl s_client [ -connect host:port ] [ -cert filename ] [ -CApath directory ] [ -CAfile filename ]

实操:

1、自建CA,升级的openssl配置文件在/usr/local/openssl/ssl/openssl.conf,CA默认配置路径为/usr/local/etc/pki/CA
创建CA私钥:

CA自签证书生成:

Web服务器上生成证书签发请求文件:

CA签发证书:

发放证书到Web服务器上:

2、配置httpd支持ssl
确保mod_ssl模块安装加载
httpd -M | grep ssl
yum install mod_ssl -y

编辑/etc/httpd/conf.d/ssl.conf

3、测试,使用浏览器测试,可以访问到网页:https://192.168.138.138
openssl s_client未成功

4、将CA的自签证书导入系统,在浏览器中Internet选项——内容——证书——受信任的根证书颁发机构,导入CA证书。

(实验未成功,CA验证web.testcc.com证书未成功)

httpd自带的工具程序

htpasswd:basic认证基于文件实现时,用到的账号密码文件生成工具;
apachectl:httpd自带的服务控制脚本,支持start,stop等;
apxs:由httpd-devel包提供的,扩展httpd使用第三方模块的工具;
rotatelogs:日志滚动工具
suexec:访问某些有特殊权限配置的资源时,临时切换至指定用户运行;
ab:apache benchmark,压力测试工具

控制httpd服务的脚本,apachectl start | stop | restart | status | fullstatus

apxs,需要安装:yum install httpd-devel -y
apxs - APache eXtenSion tool

http压力测试工具:
  ab、  webbench、  http_load
  jmeter:
  loadrunner:专业级商业压力测试工具
  tcpcopy:网易出品

ab [OPTIONS] URL
  -n:总的请求数
  -c:模拟的并发数
  -k:以持久连接模式测试

ulimit -n #:调整当前用户所同时打开的文件数;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

rabbitMQ的简单使用

rabbitMQ的介绍 RabbitMQ是一个开源的消息代理和队列服务器&#xff0c;主要用于在不同的应用程序之间传递消息。它基于AMQP&#xff08;Advanced Message Queuing Protocol&#xff09;协议&#xff0c;提供了一种可靠的方式来处理异步通信。RabbitMQ使用Erlang语言编写&…

IT入门知识第三部分《软件开发》(3/10)

目录 IT入门知识大纲第三部分《软件开发》 1. 软件开发生命周期&#xff08;SDLC&#xff09; 1.1 需求分析 1.2 软件设计 1.3 程序编码 1.4 软件测试 1.5 项目部署 1.6 运行维护 2. 软件开发方法论 2.1 瀑布模型 2.2 敏捷开发 2.2.1 Scrum 2.2.2 Kanban 2.3 Dev…

告别盲目投放,Xinstall全方位监测App广告效果

在移动互联网高速发展的今天&#xff0c;App广告已成为品牌与消费者沟通的重要桥梁。然而&#xff0c;如何确保广告投放的精准性和效果性&#xff0c;成为广告主们关注的焦点。在这个数据驱动的时代&#xff0c;Xinstall以其专业的App广告效果统计功能&#xff0c;为广告主们提…

将Typora中图片从指定路径移动到当前文件夹下(准确位置为:XX.md文件所在目录/XX.assets/)

1、背景介绍 最开始时候,将复制到Typora中的图片放在了指定位置。但是在进行迁移(在别的电脑上打开md文件),会发现发送过来的文件不包含图片,导致文件内容缺失。解决办法就是将图片放在XX.md文件所在目录/XX.assets/。 2、方法 2.1 做好文件备份 2.2 替换图片链接中的…

使用MyBatisPlus让数据库和实体类字段自动映射

文章目录 使用MyBatisPlus让数据库和实体类字段自动映射需求场景假如没有映射把映射放到sql语句中使用MyBatisPlus提供的注解简化映射 使用MyBatisPlus让数据库和实体类字段自动映射 需求场景 数据库表中的字段名字&#xff0c;与实体类中的属性名字不一致&#xff0c;我们想…

使用PaddleNLP 从0构建一个属于你自己的心理大模型

项目源于&#xff1a;EmoLLM心理大模型,一直就有用paddle实践心理大模型的想法&#xff0c;终于实现了哈~。接下来就手把手带大家一块做一个心理大模型吧&#xff01;&#xff01;&#xff01; 简单画了个框架图&#xff1a; 环境配置 In [ ] # !git clone -b develop https…

新安装的gcc编译出现编译器内部错误

在原本的环境中已经安装gcc了&#xff0c;但是版本比较低&#xff0c;想用新的版本。 重新下载安装gcc源码编译安装 make install安装好之后想用新的gcc来编译 先改下头文件搜索路径&#xff0c;xxxxxx就是安装后的include/c/xxx/这个路径 CPLUS_INCLUDE_PATH xxxxxx:$CPL…

建筑幕墙甲级设计资质:申请条件与评分标准

建筑幕墙甲级设计资质的申请条件与评分标准可以清晰归纳如下&#xff1a; 申请条件 一、企业基本情况 独立企业法人资格&#xff1a;企业需具有独立企业法人资格。注册资本&#xff1a;注册资本不少于300万元人民币。 二、技术人员条件 主要技术负责人或总工程师&#xff…

Nuxt.js 深入浅出:目录结构与文件组织详解

title: Nuxt.js 深入浅出&#xff1a;目录结构与文件组织详解 date: 2024/6/18 updated: 2024/6/18 author: cmdragon excerpt: 摘要&#xff1a;本文详述了Nuxt.js框架中关键目录与配置文件的作用及使用方法&#xff0c;包括布局设定、页面结构管理、插件集成、静态资源处理…

1999-2020年各地级市农村居民人均纯收入数据

1999-2020年各地级市农村居民人均纯收入数据 1、时间&#xff1a;1999-2020年 2、指标&#xff1a;年份、城市、农村居民人均纯收入 3、来源&#xff1a;区域年鉴、各省市年鉴 4、范围&#xff1a;地级市&#xff0c;具体每年城市数量参看下文图片&#xff0c;具体城市名单…

macbook屏幕录制技巧,这2个方法请你收好

在当今数字化时代&#xff0c;屏幕录制成为了一项不可或缺的技能&#xff0c;无论是教学演示、游戏直播&#xff0c;还是软件操作教程&#xff0c;屏幕录制都能帮助我们更直观地传达信息。MacBook作为苹果公司的标志性产品&#xff0c;其屏幕录制功能也备受用户关注。本文将详细…

【小白专用24.6.18】C# SqlSugar:连接数据库实现简单的,增、删、改、查

【小白专用 已验证24.6.18】C# SqlSugar操作MySQL数据库实现增删改查-CSDN博客 通过NuGet包管理器搜索SqlSugar&#xff08;MySql还要安装MySql.Data、Newtonsoft.Json&#xff09;包并安装 SqlSugarClient db new SqlSugarClient(new ConnectionConfig(){ConnectionString …

计数类DP——AcWing 900. 整数划分

计数类DP 定义 计数类DP主要是通过动态规划的方法来计算满足特定条件的方案数、组合数等数量相关的问题。 运用情况 需要计算不同排列、组合或情况的数量。问题具有明显的阶段性&#xff0c;且每个阶段的选择会对后续阶段产生影响。可以通过逐步构建较小规模问题的解来推导…

mumu 模拟器如何模拟指纹识别?

最近在帮朋友解决一些任务时&#xff0c;有些比较复杂的任务需要批量使用模拟器&#xff0c;但是模拟器存在一个缺点&#xff0c;就是缺少很多物理功能&#xff0c;比如说陀螺仪、温度传感器和生物识别模块等等&#xff0c;但是有些任务是需要这些功能的。没有办法&#xff0c;…

vue3-openlayers 使用tianditu,wmts和xyz等source加载天地图切片服务

本篇介绍一下使用vue3-openlayers加载天地图切片&#xff0c;三种方法&#xff1a; 使用tianditu&#xff08;ol-source-tianditu内部实现其实用的wmts&#xff09;使用wmts&#xff08;ol-source-wmts&#xff09;使用xyz&#xff08;ol-source-xyz&#xff09; 1 需求 vue…

为什么动态代理接口中可以不加@Mapper注解

为什么动态代理接口中可以不加Mapper注解 如下图&#xff1a; 我们上面的UserMapper上面没有加Mapper注解&#xff0c;按道理来说UserMapper这个类应该是注入不到IOC容器里面的&#xff0c;但是为什么我们程序的运行效果仍然是正常的呢&#xff1f;这是因为你的启动类上加了m…

zabbix“专家坐诊”第242期问答

问题一 Q&#xff1a;snmp检查用的什么性能啊&#xff1f;设备多了就检测失败&#xff0c;实际是能通的。 A&#xff1a;把大批量请求取消&#xff0c;把异常获取不到的监控项都禁用 Q&#xff1a;是这个吧&#xff0c;显示不一样。 A&#xff1a;什么版本&#xff1f;用的是v3…

ggpicrust2包:简化和直观化微生物功能预测分析

简介 ggpicrust2是一个强大的R语言包&#xff0c;旨在简化和直观化PICRUSt2输出的分析。通过预定义的图表和函数&#xff0c;研究人员可以轻松生成关于微生物功能预测的统计图&#xff0c;并提供丰富的自定义选项。本文将演示如何使用ggpicrust2包进行分析和可视化。 安装ggp…

VBA学习(9):按指定名单一键删除工作表

今天继续给大家聊VBA编程中工作表对象的常用操作&#xff0c;主要内容是如何批量删除工作表&#xff1b;也就是删除单个工作表、删除全部工作表和删除指定名单内的工作表。 1.删除单个工作表 删除工作表需要使用到工作表对象的delete方法&#xff0c;语法格式如下&#xff1a…

Python单行代码:一招鲜,吃遍天

大家好&#xff0c;在Python编程中&#xff0c;我们时常需要高效、简洁的代码来解决复杂的问题。今天&#xff0c;我将向大家介绍10个非常有用的Python单行代码。 一行代码指的是将复杂的任务浓缩在一行代码中完成。它充分利用Python的简洁和强大&#xff0c;使代码更简洁、更…