web3(httpd2.4)
http协议:
事务:request/response
request:
<method> <URL> <version>
HEADERS
<body>
response:
<version> <status> <reason-phrase>
HEADERS
<body>
HEADERS:
Name: Value1, Value2, …
首部分类
通用首部
请求首部
响应首部
实体首部
扩展首部
通用首部:请求和响应报文通用
Connection:{close, keep-alive}
Date:报文创建的日期时间
Via:经由,报文传输经过的中间代理服务器;
Cache-Control:定义缓存控制机制;
Pragma:
请求首部:
Accept:可接受的MIME类型;
Accept-language:
Accept-encoding:接受的编码格式,deflate, gzip, …
Accetp-Charset:接受的字符集格式
Client-IP:
Host:请求的服务器的名称和端口;
Referer:跳转至当前页面上级页面;
User-Agent:客户端代理
条件式请求首部:
Expect:
If-Modified-Since
If-Unmodified-Since
If-None-Match
If-Match
安全请求首部:
Authorization
Cookie:
Cookie2:
响应首部:
信息性首部:
Age:
Server:
协商首部:
Accept-Range:服务端可接受的请求类型的范围;
Vary:其它首部列表;
安全响应首部:
Set-Cookie
Set-Cookie2
WWW-Authencate:认证质询
实体首部:
Content-Encoding
Content-language
Content-Lenth
Content-Location
Content-Type
…
Allow: 允许的请求方法;
Location:资源的真正地址;
缓存相关:
Etag:
Expires:
Last-Modified:
扩展首部:
X-Forwarded-For:
…
《http权威指南》
url:Uniform Resource Locator
URL scheme:协议,http, https, ftp, …
服务器地址:IP:Port
资源路径:/PATH/TO/SOME_RESOURCE
基本语法格式:
<scheme>://<user>:<passowrd>@<host>[:<port>]/<path>;<params>?<query>#<frag>
params:参数,;name=value&name=value
query:查询字符串,?field=value&field=value
frag:页面锚定符;#frag_id
14、curl命令
curl是基于URL语法在命令行方式下工作的文件传输工具,它支持FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE及LDAP等协议。curl支持HTTPS认证,并且支持HTTP的POST、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 使用HTTP 1.0
用法:curl [options] [URL…]
另一个工具:elinks
elinks [OPTION]… [URL]…
-dump: 不进入交互式模式,而直接将URL的内容输出至标准输出;
15、使用mod_deflate模块压缩页面优化传输速度
适用场景:
(1) 节约带宽,额外消耗CPU;同时,可能有些较老浏览器不支持;
(2) 压缩适于压缩的资源,例如文件文件;
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
16、https, http over ssl
SSL会话的简化过程
(1) 客户端发送可供选择的加密方式,并向服务器请求证书;
(2) 服务器端发送证书以及选定的加密方式给客户端;
(3) 客户端取得证书并进行证书验正:
如果信任给其发证书的CA:
(a) 验正证书来源的合法性;用CA的公钥解密证书上数字签名;
(b) 验正证书的内容的合法性:完整性验正
(c) 检查证书的有效期限;
(d) 检查证书是否被吊销;
(e) 证书中拥有者的名字,与访问的目标主机要一致;
(4) 客户端生成临时会话密钥(对称密钥),并使用服务器端的公钥加密此数据发送给服务器,完成密钥交换;
(5) 服务用此密钥加密用户请求的资源,响应给客户端;
注意:SSL会话是基于IP地址创建;所以单IP的主机上,仅可以使用一个https虚拟主机;
回顾几个术语:PKI,CA,CRL,X.509 (v1, v2, v3)
配置httpd支持https:
(1) 为服务器申请数字证书;
测试:通过私建CA发证书
(a) 创建私有CA
(b) 在服务器创建证书签署请求
(c) CA签证
(2) 配置httpd支持使用ssl,及使用的证书;
# yum -y install 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]
17、httpd自带的应用程序
htpasswd:basic认证基于文件实现,用于生成账号和密码的程序;
htdbm
htdigest
apachectl:httpd自带的服务控制脚本,支持start和stop等子命令;
apxs:- APache eXtenSion tool
rotatelogs:
ab:apache benchmark
webbench, httpload, …
loadrunner, jmeter (ASF)
tcpcopy,
18、ab – web service的压力测试工具
命令行工具:ab, webbench, httpload, seige, …
GUI:loadrunner, jmeter
tcpcopy
ab [options] [http[s]://]hostname[:port]/path
请求数:-n requests
并发数: -c concurrency
长连接:-k
MPM:
prefork:进程模型,两级架构,master/worker,每worker处理一个请求;
worker:线程模型,三级架构,maste/worker/thread, 每thread处理一个请求;workers*threads
event:事件驱动模型,两级架构,master/worker,每进程处理多个请求;
httpd-2.2与httpd-2.4的不同之处
MPM是非DSO机制,不支持LoadModule进行切换;
切换:/etc/sysconfig/httpd
定义HTTPD变量的值:
/usr/sbin/httpd
/usr/sbin/httpd.worker
/usr/sbin/httpd.event
prefork的配置:
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>
worker的配置:
<IfModule worker.c>
StartServers 4
MaxClients 300
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
基于IP的访问控制机制:
Order allow, deny
allow from CLIENTS
deny from CLIENTS
CLEINTS:
IP,
NETWORK
HOSTNAME
DOMAIN.TLD
虚拟主机:
基于ServerName的虚拟主机,要使用专用指令NameVirtualHost;
# service SysV_Init_Script start|stop|restart|status|reload
# chkconfig SysV_Init_Script on|off
web3(httpd2.4)相关推荐
- 在web3上搭建ecshop网上商城
主机规划 1.3.1-编译安装LAMP环境 一.准备好开发环境及软件包; yum -y groupinstall "Development tools" apache: apr-1 ...
- 编译httpd-2.4.46的RPM包
目录 一.下载源码 二.编译&排错 2.1.第一次编译,解决依赖包问题. 2.2.第二次编译,解决anaconda导致的环境变量问题 2.3.第三次编译,解决apr版本过低问题 提供 apr- ...
- Web3与智能合约交互实战
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. Web3与智能合约交互实战 以太坊中智能合约和web3交互实战 最近区块链.以太坊十分的火,所有就会有许多人去进入区块链 ...
- Geth 控制台使用及 Web3.js 使用实战
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 突然发现没有太多写实战的,所以就写一点自己的拙见,提供给成员一些参考.Geth 控制台(REPL)实现了所有的web3 ...
- centos 6 编译安装httpd-2.4
centos6 yum安装的apr版本已经不适用httpd-2.4版本了.所以,需要源码编译apr以及apr-util 1. 下载源码: cd /usr/local/src/ wget http:// ...
- 「Web2.0」的创造者表示:为Web3.0喝彩还为时尚早
题图 | Kelly Sullivan / Getty Images for LinkedIn 图/ADOBE STOCK 最近Web3.0这个概念真的太火了. 简单来说,Web3.0将是去中心化.去 ...
- 马斯克炮轰元宇宙与Web3.0:“我不觉得有人会成天把屏幕绑在脑袋上”
来源:雷峰网 元宇宙和 Web3.0据称将是彻底改变数字世界的两种趋势.但现实世界中的首富.硅谷钢铁侠埃隆·马斯克对两者似乎都并不怎么看好. 在最近的一次采访中,马斯克表示,他在市场上并没有看到任何值 ...
- Web3.js 0.20.x API 中文版翻译
文档原始链接为:https://web3.learnblockchain.cn/0.2x.x/,欢迎大家前往查阅,本文只是节选开头部分的介绍及API列表索引,以下为翻译正文: 为了开发一个基于以太坊的 ...
- Web3.js 0.20.x API 中文版翻译 1
2019独角兽企业重金招聘Python工程师标准>>> 本文首发于深入浅出区块链社区 原文链接:Web3.js 0.20.x API 中文版翻译原文已更新,请读者前往原文阅读 文档原 ...
- Centos6部署lamp: httpd2.4+module模式
系统: Centos6 httpd版本: 2.4 使用event工作模式 php版本: 5.4.26 mariadb版本: 5.5.46 xcache版本: 3.0.3 安装顺序: php最后安装 一 ...
最新文章
- 自学python需要多长时间-自学Python需要多长时间?
- 保存delphi中的library path
- flask中的CBV和FBV
- Windows 下 Redis 的下载和安装
- 最长无重复字符子串?
- makefile 生成.o_要学好 C 语言 / C++ ,Makefile 可少不了
- 854. 相似度为 K 的字符串(每日一难phase2--day20)
- python概率密度函数参数估计_概率密度估计介绍
- 透过年报看区块链股的含金量:无一披露此业务营收 近5成停留在研究
- Unity 知识点 - 3D游戏 - 视角跟随和键盘移动
- EasyFlipViewPager,flutter教程
- 酷睿 i7 12800H怎么样 相当于什么水平
- 【Python】面向对象,封装
- [案例2-7]抽取幸运观众
- 关于GPS车载终端的研究
- 全志V853开发板--构建编译
- 开票软件打印时,没有预览界面
- HNOI2017影魔
- [分享]对内PMP项目管理培训-精华篇(五大过程组)
- Alibaba Sentinel DegradeRule 降级规则源码
热门文章
- 详解51系列单片机引脚及功能
- 知网HTML阅读是什么,HTML – 屏幕阅读器究竟是什么?我应该如何处理我的网站?...
- c语言程序 中断函数示例,单片机中断应用的C语言编程 -解决方案-华强电子网
- 金蝶服务器显示已离线,金蝶K3提示云服务器已离线
- 实现h5链接打开Android app
- 基于python的异方差检验_【Python】统计科学之讲讲异方差的检验
- 解读swarm最新资讯,主网8.2号开始产BZZ
- Sprint周期开发总结
- 华为静态,动态NAT,Easy IP实验!超详细,有手就能学会
- OpenCV图像处理和图像识别常用函数