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

news2024/11/29 4:35:59

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 #:调整当前用户所同时打开的文件数;

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

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

相关文章

【mysql 安装启动失败】 没有网下 libssl.so.10 not found 如何解决?

问题描述&#xff1a; libssl.so.10 > not found libcrypto.so.10 > not found [rootmysql tools]# ls -l /usr/sbin/mysqld -rwxr-xr-x. 1 root root 64290024 Sep 14 2022 /usr/sbin/mysqld [rootmysql tools]# ldd /usr/sbin/mysqldlinux-vdso.so.1 (0x00007fff97105…

网络流量 数据包length计算

MTUMSSIP header(20 bytes)tcp header(20 bytes) lengthMTUEthernet header(14bytes) 其中MSS为Maximum Segment Size&#xff0c;即最大报文段长度&#xff0c;其受MTU大小影响&#xff0c;这里的MTU指的是三层的&#xff0c;二层的MTU固定为1500&#xff0c;不能修改。 MT…

SFF2004A-ASEMI无人机专用SFF2004A

编辑&#xff1a;ll SFF2004A-ASEMI无人机专用SFF2004A 型号&#xff1a;SFF1006A 品牌&#xff1a;ASEMI 封装&#xff1a;ITO-220AC 最大平均正向电流&#xff08;IF&#xff09;&#xff1a;20A 最大循环峰值反向电压&#xff08;VRRM&#xff09;&#xff1a;400V 最…

一种快速设计PCB外壳的方法

设计PCB外壳比较好用的工具是SW但是有时候需要快速设计外壳的情况下使用立创EDA的外壳设计功能很好用&#xff0c;设计完成之后可以直接导出STL文件&#xff1a; 可以看到设计的外壳还是蛮精美的&#xff1a; 特别注意&#xff0c;设计外壳的时候要考虑如何把PCB放进壳子中&…

市值3万亿英伟达的崛起:技术、坚持与市场的力量,厚积薄发的经典案例

在科技领域&#xff0c;英伟达&#xff08;NVIDIA&#xff09;的故事无疑是一个厚积薄发的经典案例。作为一家专注于图形处理单元&#xff08;GPU&#xff09;的公司&#xff0c;英伟达用31年的时间证明了技术的价值、计算的价值和坚持的价值。本文将详细探讨英伟达如何从一家市…

第7周作业——单片机定时器与串口通信的学习与应用

一、蜂鸣器 &#xff08;一&#xff09;蜂鸣器介绍 蜂鸣器是一种将电信号转换为声音信号的器件&#xff0c;常用来产生设备的按键音、报警音等提示信号&#xff0c;按照驱动方式可以分为如下两种&#xff1a; 1、有源蜂鸣器&#xff1a;内部自带振荡源&#xff0c;将正负极接上…

自动化测试:Autorunner的使用

自动化测试&#xff1a;Autorunner的使用 一、实验目的 1、掌握自动化测试脚本的概念。 2、初步掌握Autorunner的使用 二、Autorunner的简单使用 autoRunner使用方法 新建项目 a) 在项目管理器空白区域,右键鼠标,选择新建项目 b) 输入项目名后,点击[确定]. 在初次打开aut…

[java]集合类stream的相关操作

1.对list中的map进行分组 下面例子中&#xff0c;根据高度height属性进行分组 List<Map<String, Float>>originalList new ArrayList<>();originalList.add(new HashMap<String,Float>() {{put("lng", 180.0f);put("lat",90f);…

Eclipse使用TFS(Team Foundation Server) 超详细

Eclipse使用TFS 1、什么是TFS2、TFS和Git的区别3、签出代码4、签入代码4.1、签出以进行编辑4.2、修改本地代码4.3、签入挂起的更改4.4、签入 如果不能 签入挂起的更改&#xff0c;则先 签出以进行编辑如果 签入挂起的更改不可选中&#xff0c;则 如下操作 1、什么是TFS Team F…

阿里云使用域名访问部署网站【2024 详细版】

目录 一、注册域名 1.创建信息模板 2.查询注册域名 二、域名设置 1.SSL证书 2.域名解析 3.宝塔设置 一、注册域名 1.创建信息模板 点击右上角【三】-【域名】-【信息模板】-【创建信息模板】- 填写信息 模板分为个人和企业两种&#xff0c;根据情况进行创建即可&…

c++ 里构造函数的形参与数据成员的同名问题

如题&#xff0c;这时&#xff0c;或许在 java 里&#xff0c;会报语法错误。但在 c vs2019 开了 c20语法规范。这不再是错误。这样的好处是解决了咱们的起变量名的麻烦&#xff1a;重名现在已不是错误&#xff0c;编译器可以解决了。测试如下&#xff1a; 我们看看 c 编译器是…

揭秘!速卖通、敦煌网、国际站出单背后的黑科技:自养号测评技术

在竞争激烈的跨境电商平台上&#xff0c;如亚马逊、速卖通、Lazada、Shopee、敦煌网、Temu、Shein、美客多和阿里国际等&#xff0c;稳定出单成为每位卖家共同追求的目标。为了实现这一目标&#xff0c;卖家需要从产品选择、运营策略和客户服务等多个维度进行全面考量&#xff…

【C语言】13.指针与数组的关系

一、数组名的理解 #include <stdio.h> int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };printf("&arr[0] %p\n", &arr[0]);printf("arr %p\n", arr);return 0; }通过上述代码输出结果我们发现结果相同&#xff0c;因此我们得出结论&a…

电脑开机后出现Aptio Setup Utility 处理方法

电脑开机后出现Aptio Setup Utility怎么处理 Aptio Setup Utility界面的原因&#xff1a; 这是由于 bios设置与真实的硬件情况不匹配硬盘故障找不到可启动的硬盘情况 我的问题是找不到可启动的硬盘情况 解决方式如下&#xff1a; 进入如下界面了&#xff0c;选择Boot选项…

SAP_ABAP模块-记录第三方通过Webservice调用SAP接口时的问题

一、业务背景&#xff1a; 最近SAP有个货物移动的接口需要优化&#xff0c;之前与第三方销售管理平台对接&#xff0c;一直都没有问题的&#xff0c;但是现在SAP这边优化后&#xff0c;然后对方平台的开发同事说&#xff0c;调用不成功&#xff0c;报错了&#xff0c;最开始一直…

vue3 antdv RadioButton默认值选择问题处理

1、先上官方文档&#xff1a; Ant Design Vue — An enterprise-class UI components based on Ant Design and Vue.js 官方代码&#xff1a; <template><div><div><a-radio-group v-model:value"value1"><a-radio-button value"a…

添加右键菜单(以git为例)

1、打开注册表编辑器 打开系统注册表&#xff0c;使用组合键“Win R”输入“regedit”。 依次展开”HKEY_CLASSES_ROOT\Directory\Background\shell”。 2、新建右键菜单项 在[Background]下找到“shell”如果没有则新建项shell&#xff0c;接着在“shell”下右键-新建项名…

M12单端I/O预铸法兰插座A-code

M12单端I/O预铸法兰插座A-code概述 M12单端I/O预铸连接器A-code是一种常用于工业自动化领域的连接器件&#xff0c;主要用于传感器和执行器之间的信号传输。它的设计遵循国际标准IEC 61076-2-101&#xff0c;具有良好的防水防尘性能&#xff0c;通常达到IP67的保护等级。M12连…

kettle无法启动问题_PENTAHO_JAVA_HOME

1&#xff0c;遇到spoon.bat启动报错&#xff1a;先增加pause看清错误信息 1.1&#xff0c;错误信息 1.2&#xff0c;因为本地安装jdk1.6无法支持现有版本kettle。只能手动执行kettle调用的java路径&#xff1b;如下 系统--高级系统设置--高级--环境变量 启动成功

Day 29:1600. 王位继承顺序

Leetcode1600. 王位继承顺序 一个王国里住着国王、他的孩子们、他的孙子们等等。每一个时间点&#xff0c;这个家庭里有人出生也有人死亡。 这个王国有一个明确规定的王位继承顺序&#xff0c;第一继承人总是国王自己。我们定义递归函数 Successor(x, curOrder) &#xff0c;给…