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)相关推荐

  1. 在web3上搭建ecshop网上商城

    主机规划 1.3.1-编译安装LAMP环境 一.准备好开发环境及软件包; yum -y groupinstall "Development tools" apache: apr-1 ...

  2. 编译httpd-2.4.46的RPM包

    目录 一.下载源码 二.编译&排错 2.1.第一次编译,解决依赖包问题. 2.2.第二次编译,解决anaconda导致的环境变量问题 2.3.第三次编译,解决apr版本过低问题 提供 apr- ...

  3. Web3与智能合约交互实战

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. Web3与智能合约交互实战 以太坊中智能合约和web3交互实战 最近区块链.以太坊十分的火,所有就会有许多人去进入区块链 ...

  4. Geth 控制台使用及 Web3.js 使用实战

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 突然发现没有太多写实战的,所以就写一点自己的拙见,提供给成员一些参考.Geth 控制台(REPL)实现了所有的web3 ...

  5. centos 6 编译安装httpd-2.4

    centos6 yum安装的apr版本已经不适用httpd-2.4版本了.所以,需要源码编译apr以及apr-util 1. 下载源码: cd /usr/local/src/ wget http:// ...

  6. 「Web2.0」的创造者表示:为Web3.0喝彩还为时尚早

    题图 | Kelly Sullivan / Getty Images for LinkedIn 图/ADOBE STOCK 最近Web3.0这个概念真的太火了. 简单来说,Web3.0将是去中心化.去 ...

  7. 马斯克炮轰元宇宙与Web3.0:“我不觉得有人会成天把屏幕绑在脑袋上”

    来源:雷峰网 元宇宙和 Web3.0据称将是彻底改变数字世界的两种趋势.但现实世界中的首富.硅谷钢铁侠埃隆·马斯克对两者似乎都并不怎么看好. 在最近的一次采访中,马斯克表示,他在市场上并没有看到任何值 ...

  8. Web3.js 0.20.x API 中文版翻译

    文档原始链接为:https://web3.learnblockchain.cn/0.2x.x/,欢迎大家前往查阅,本文只是节选开头部分的介绍及API列表索引,以下为翻译正文: 为了开发一个基于以太坊的 ...

  9. Web3.js 0.20.x API 中文版翻译 1

    2019独角兽企业重金招聘Python工程师标准>>> 本文首发于深入浅出区块链社区 原文链接:Web3.js 0.20.x API 中文版翻译原文已更新,请读者前往原文阅读 文档原 ...

  10. Centos6部署lamp: httpd2.4+module模式

    系统: Centos6 httpd版本: 2.4 使用event工作模式 php版本: 5.4.26 mariadb版本: 5.5.46 xcache版本: 3.0.3 安装顺序: php最后安装 一 ...

最新文章

  1. 自学python需要多长时间-自学Python需要多长时间?
  2. 保存delphi中的library path
  3. flask中的CBV和FBV
  4. Windows 下 Redis 的下载和安装
  5. 最长无重复字符子串?
  6. makefile 生成.o_要学好 C 语言 / C++ ,Makefile 可少不了
  7. 854. 相似度为 K 的字符串(每日一难phase2--day20)
  8. python概率密度函数参数估计_概率密度估计介绍
  9. 透过年报看区块链股的含金量:无一披露此业务营收 近5成停留在研究
  10. Unity 知识点 - 3D游戏 - 视角跟随和键盘移动
  11. EasyFlipViewPager,flutter教程
  12. 酷睿 i7 12800H怎么样 相当于什么水平
  13. 【Python】面向对象,封装
  14. [案例2-7]抽取幸运观众
  15. 关于GPS车载终端的研究
  16. 全志V853开发板--构建编译
  17. 开票软件打印时,没有预览界面
  18. HNOI2017影魔
  19. [分享]对内PMP项目管理培训-精华篇(五大过程组)
  20. Alibaba Sentinel DegradeRule 降级规则源码

热门文章

  1. 详解51系列单片机引脚及功能
  2. 知网HTML阅读是什么,HTML – 屏幕阅读器究竟是什么?我应该如何处理我的网站?...
  3. c语言程序 中断函数示例,单片机中断应用的C语言编程 -解决方案-华强电子网
  4. 金蝶服务器显示已离线,金蝶K3提示云服务器已离线
  5. 实现h5链接打开Android app
  6. 基于python的异方差检验_【Python】统计科学之讲讲异方差的检验
  7. 解读swarm最新资讯,主网8.2号开始产BZZ
  8. Sprint周期开发总结
  9. 华为静态,动态NAT,Easy IP实验!超详细,有手就能学会
  10. OpenCV图像处理和图像识别常用函数