#httpd 服务
1. 简单概述
,HTTP 协议, 全称 Hyper Text Transfer Protocol, 中文名超文本传输协议
,HTTP 的重要应用之一是 WWW 服务, 设置 HTTP 协议最初是提供一种发布和接受 html 页面的方法
,www 全称 world wide web(万维网)
,HTTP 协议的 WWW 服务应用的默认端口为 80,https 加密的端口为 443
,http 协议位于 OSI 模型中第七层应用层
, 官网: www.apache.org
# 特点
,2.2 版本非常稳定强大, 2.4 版本性能更高
,prefork 模式取消了进程创建开销
, 高并发时消耗系统资源相对多
, 支持扩展
- #HTTP 协议版本
- # 版本: 0.9, 1.0, 1.1, 2.0,3.0
0.9: 最初的版本, 仅支持请求方法方式 get
1.0: 增加了请求方式 POST 和 HEAD
1.1: 引入了持久连接
2.0: 增加双工模式(即不仅客户端能够同时发送多个请求, 服务端也能同时处理多个请求)
也增加了服务器推送功能
3.0: 基于 UDP 实现, 基于 UDP 的多路复用, 加密认证的报文
#HTTP 状态码
是用来表示 Web 服务器响应 http 请求状态的数字代码
# 状态码可分为 5 大类
#生产场景下的状态码及其对应的作用
#apache 的工作模式
prefork: 多进程, 每个请求用一个进程响应
worker: 多线程, 一个进程可以生成多个线程, 每个线程响应一个请求
event(http2.4 之后添加): 基于异步 I/O 模型, 一个进程或线程, 每个进程或线程响应多个用户
2. 相关术语
#http 请求方式
用于告诉 Web 服务器端需要执行哪些具体的动作: 包括获取指定 Web 页面, 提交内容到服务器, 删除服务器上资源文件等
# 常用的 HTTP 请求方法
- #http 报文
- #http 报名可分为两种
请求报文: 从客户端发往 Web 服务器的 http 报文
响应报文: 从 Web 服务器发往 Web 客户端的报文
# 请求报文
请求报文包括: 请求行, 请求头部, 空行, 请求报文主体
请求行
请求行是请求报文的第一行, 用来说明客户端想要做什么.
内容由请求方法字段, URL 字段和 HTTP 协议版本字段组成
请求头部
请求头部由关键字 / 值对组成, 使用: 作为分隔符,
请求头部的作用是通过客户端把请求的相关信息告诉给服务器
请求报文主体
请求报文主体包括了要发送给 Web 服务器的数据信息, 请求报文主体不会应用于 HTTP 的 get 命令方法
# 响应报文
响应报文包括: 状态行, 响应头部, 空行, 响应报文主体
起始行:
也叫状态行, 用来说明服务器响应客户端请求的状况
一般为协议及版本号, 数字状态码, 状态情况
响应头部: 和请求报文类似, 起始行的后面一般有若干个头部字段
响应报文主体: 响应报文主体中装载了要返回给客户端的数据
#URL 介绍
全称 uniform resource location(统一资源定位符), 也称为网页地址(网址)
#URL 的组成
由三部分组成: 第一部分是协议, 如: http
第二部分是主机资源服务器 IP 地址或域名
第三部分是主机资源的具体地址
#URI 介绍
全称 uniform resource identifier(统一资源标识符), 用于标识某一互联网资源名称的字符串
URL 是 URI 命名机制的一个子集
# 静态网页介绍
在网站设计中, 纯碎的 HTML 格式的网页通常称为静态网页
# 常见的静态扩展名
纯文本类程序或文件, 如. htm ,.HTML ,.xml ,.shtml ,.JS ,.CSS 等.
图片类文件或数据文档, 如. j pg ,.gif,.PNG ,.bmp ,.txt ,.doc ,.ppt 等.
视频类流媒体文件, 如. mp4 ,.swf,.avi ,.wmv ,. ftv
# 动态网页介绍
动态网页和静态网页是相对的, 以. PHP .JS .asp 等形式结尾的
# 动态网页的特点
, 网页扩展名后缀常见为:.asp .aspx .PHP
, 一般以数据库技术为基础
, 实现更多的功能
, 网址中有? & 标志性的符号
# 伪静态网页介绍
伪静态就是通过一些技术 (如 rewrite) 把动态网页的 URL 地址伪装成静态网页 URL 地址, 但实际还是动态网页
- # 网站流量度量术语
- IP
Internet protocol. 指独立 IP 数, 独立 IP 数是指不同 ip 地址的计算机访问网站时被计的总次数
PV
(访问量), 即 page view(页面浏览), 即页面浏览或单击量, 不管客户端是否相同, 也不管 ip 是否相同, 用户只要访问
网站页面就会被计算为 PV, 一次计一个 PV
UV
unique visitor(独立访客), 同一个客户端访问网站被记为一个访客, 一天内相同的客户端访问同一个网站只会被计
一次 UV
UV 一般是以客户端 cookie 等技术作为统计依据
# 网站并发连接理解
网站服务器在单位时间内能够处理的最大连接数
3. 安装方法
- #1. 使用 yum 进行安装
- yum install httpd -y
- # 启动服务
- [root@ctos3 ~]# systemctl start httpd
- # 查看 httpd 服务的目录结构
- [root@ctos3 ~]# tree /etc/httpd/
- /etc/httpd/
├── conf
│ ├── httpd.conf #主配置文件
│ └── magic
├── conf.d
│ ├── autoindex.conf
│ ├── README
│ ├── userdir.conf
│ └── welcome.conf
├── conf.modules.d #模块目录
│ ├── 00-base.conf
│ ├── 00-dav.conf
│ ├── 00-lua.conf
│ ├── 00-mpm.conf
│ ├── 00-proxy.conf
│ ├── 00-systemd.conf
│ └── 01-CGI.conf
├── logs -> ../../var/log/httpd #日志
├── modules -> ../../usr/lib64/httpd/modules
└── run -> /run/httpd
- #2. 编译安装 apache2.4
- #1. 安装相关的包
- yum groupinstall "Development Tools" "Development Libraries" -y #安装相关开发工具包
- yum install gcc gcc-c++ openssl-devel bzip2 -y #安装依赖包
- #2. 编译 apache 依赖的相关包
- [root@ctos3 ~]# ls -l | grep -E "apr|apr|pcre|httpd"
- -rw-r--r-- 1 root root 1031613 May 30 2016 apr-1.5.2.tar.gz
- -rw-r--r-- 1 root root 694427 May 30 2016 apr-util-1.5.4.tar.bz2
- -rw-r--r-- 1 root root 5101005 May 30 2016 httpd-2.4.16.tar.bz2
- -rw-r--r-- 1 root root 1557603 May 30 2016 pcre-8.37.tar.bz2
- # 提示: 我这边是将包下载下来了再使用 rz(lrzsz 包名)上传的
- # 依赖包下载地址
apr 和 apr-utils:http://apr.apache.org/
- prce:http://pcre.org
- #2.1. 编译 apr
- [root@ctos3 ~]# tar xf apr-1.5.2.tar.gz -C /usr/local/src/
- [root@ctos3 ~]# cd !$
- cd /usr/local/src/
- [root@ctos3 src]# cd apr-1.5.2/
- [root@ctos3 apr-1.5.2]# ./configure --prefix=/usr/local/apr
- [root@ctos3 apr-1.5.2]# make -j 2 && make install
- # 提示:-j 参数: 使用 CPU 来进行编译, 加快速度
- #2.2. 编译 apr-util
- [root@ctos3 ~]# yum install -y bzip2
- [root@ctos3 ~]# tar xf apr-util-1.5.4.tar.bz2 -C /usr/local/src/
- [root@ctos3 ~]# cd !$
- cd /usr/local/src/
- [root@ctos3 src]# cd apr-util-1.5.4/
- [root@ctos3 apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
- [root@ctos3 apr-util-1.5.4]# make -j 2 && make install
- #2.3. 编译 pcre
- [root@ctos3 ~]# tar xf pcre-8.37.tar.bz2 -C /usr/local/src
- [root@ctos3 ~]# cd !$
- cd /usr/local/src
- [root@ctos3 src]# cd pcre-8.37/
- [root@ctos3 pcre-8.37]# ./configure --prefix=/usr/local/pcre
- [root@ctos3 pcre-8.37]# make -j 2 && make install
- #3. 编译安装 apache
- [root@ctos3 ~]# tar xf httpd-2.4.16.tar.bz2 -C /usr/local/src/
- [root@ctos3 ~]# cd !$
- cd /usr/local/src/
- [root@ctos3 src]# cd httpd-2.4.16/
- [root@ctos3 httpd-2.4.16]# ./configure --prefix=/usr/local/apache2.4 --enable-so --enable-rewrite --enable-ssl --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
- [root@ctos3 httpd-2.4.16]# make -j 2 && make install
- # 编写 apache 的启动脚本
- [root@ctos3 ~]# cp /usr/local/apache2.4/bin/apachectl /etc/init.d/apache2.4
- # 添加
- [root@ctos3 ~]# VIM /etc/init.d/apache2.4
- [root@ctos3 ~]# head -n 3 /etc/init.d/apache2.4
- #!/bin/sh
- #chkconfig:2345 64 36 #启动级别的服务, 2345 指哪些级别启动, 64 是开启顺序, 36 是关闭注释
- #description:Apache2.4.16 start script #添加了这两个字段就可以使用 chkconfig 命令控制
- [root@ctos3 ~]# /etc/init.d/apache2.4 start #启动服务
- [root@ctos3 ~]# chkconfig apache2.4 on #添加开机自启
- [root@ctos3 ~]# ps aux | grep apache #查看 apache 的进程
- [root@ctos3 ~]# ss -untpl | grep 80 #查看端口
来源: https://www.cnblogs.com/guoke-boy/p/12449503.html