#httpd服务
1.简单概述
1、HTTP 协议,全称Hyper Text Transfer Protocol,中文名超文本传输协议2、HTTP的重要应用之一是WWW服务,设置HTTP协议最初是提供一种发布和接受HTML页面的方法3、www全称world wide web(万维网)
4、HTTP协议的WWW服务应用的默认端口为80,https加密的端口为443
5、http协议位于OSI模型中第七层应用层
6、官网:www.apache.org
#特点
1、2.2版本非常稳定强大,2.4版本性能更高2、prefork模式取消了进程创建开销3、高并发时消耗系统资源相对多4、支持扩展
#HTTP协议版本
#版本:0.9, 1.0, 1.1, 2.0,3.0
0.9: 最初的版本,仅支持请求方法方式get1.0:增加了请求方式POST和HEAD1.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等形式结尾的
#动态网页的特点
1、网页扩展名后缀常见为:.asp .aspx .php2、一般以数据库技术为基础3、实现更多的功能4、网址中有? &标志性的符号
#伪静态网页介绍
伪静态就是通过一些技术(如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.16start script #添加了这两个字段就可以使用chkconfig命令控制
[root@ctos3~]# /etc/init.d/apache2.4start #启动服务
[root@ctos3~]# chkconfig apache2.4on #添加开机自启
[root@ctos3~]# ps aux |grep apache #查看apache的进程
[root@ctos3~]# ss -untpl | grep 80 #查看端口