HTTP协议html
http/0.9:简单超文本浏览,只支持get方式,内部文件检索系统 linux
http/1.0 : cache ,MIME机制 method(请求方法),能够传输非文本格式的数据。Html 格式的文本文档有text/html类型标记,普通的ASCII文本文档由text/plain,类型标记 Jpeg格式的图片为image/gif类型,Apple的quick time 电影格式为video/quicktime类型。Method:请求方式 GET、POST、HEAD、PUT、DELDTE、TARCE、OPTIONS。 web
http/1.1:增长了缓存,持续链接的功能(keep-alive) apache
http/2.0:借鉴google SPDY协议的特性。浏览器
但目前来讲http版本以1.1居多,2.0用的依然较少。缓存
HTTP事物
安全
request请求报文bash
<method> <request URL> <HTTP version> <header> <entity-body>
response回应报文服务器
<HTTP version> <state code> <reason-phrase> <header> <entity-body>
http报文分析app
Request Method:GET#请求方式 Status Code:304 Not Modified#状态码 ##回应报文## Connection:Keep-Alive#使用keep-alive长链接 Date:Tue, 13 Dec 2016 14:41:57 GMT#链接时间 ETag:"5-54361251beb00"#相应内容特征码 Keep-Alive:timeout=5, max=100#长链接的超时时间,最大链接保持时间 Server:Apache/2.4.6 (CentOS) PHP/5.4.16#服务器的系统和web服务器版本 ##请求报文## Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8#客户端支持的数据类型 Accept-Encoding:gzip, deflate, sdch#支持的压缩 Accept-Language:zh-CN,zh;q=0.8#支持的语言 Cache-Control:max-age=0#缓存控制 Connection:keep-alive#支持长链接 Host:www.linuxinfo.top#客户端请求的域名 Upgrade-Insecure-Requests:1#表示支持不安全的http链接,但最好使用https User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, likeGecko) Chrome/49.0.2623.22 Safari/537.36 SE 2.X MetaSr 1.0#客户端使用的浏览器信息
使用httpd-2.4.23部署
Apache HTTP Server(简称Apache),是Apache软件基金会的一个开放源代码的网页服务器,能够在大多数电脑操做系统中运行,因为其具备的跨平台性和安全性,被普遍使用,是最流行的Web服务器端软件之一。它快速、可靠而且可经过简单的API扩展,Perl/Python解释器可被编译到服务器中,能够建立一个天天有数百万人访问的Web服务器。
新版本的 httpd-2.4 新增如下特性;
新增模块;
mod_proxy_fcgi(可提供 fcgi 代理)
mod_ratelimit(限制用户带宽)
mod_request(请求模块,对请求作过滤)
mod_remoteip(匹配客户端的 IP 地址)
对于基于 IP 的访问控制作了修改,再也不支持 allow,deny,order 机制,而是统一使用 require 进行
还新增如下几条新特性;
一、MPM 支持在运行时装载;不过要开启这种特性,在编译安装要启用这三种功能; --enable-mpms-shared=all --with-mpm=event
二、支持 event
三、支持异步读写
四、在每一个模块及每一个目录上指定日志级别
五、加强版的表达式分析器
六、每请求配置:
七、毫秒级别的 keepalive timeout
八、基于 FQDN 的虚拟主机再也不须要 NameVirtualHost 指令
九、支持使用自定义变量
步骤
首先下载源码包
apr-1.5.2.tar.gz apr-util-1.5.4.tar.gz pcre-8.39.tar.gz zlib-1.2.8.tar.gz httpd-2.4.23.tar.gz openssl-1.0.1u.tar.gz
给一个我本身作的脚本。拆分一下就是整个步骤。
#!/bin/bash echo "解压软件包" cd /root tar zxf apr-1.5.2.tar.gz tar zxf apr-util-1.5.4.tar.gz tar zxf pcre-8.39.tar.gz tar zxf zlib-1.2.8.tar.gz tar zxf httpd-2.4.23.tar.gz tar zxf openssl-1.0.1u.tar.gz echo "安装apr" cd /root/apr-1.5.2/ ./configure --prefix=/usr/local/apr &> /dev/null make &> /dev/null make install &> /dev/null echo "安装apr-utils" cd /root/apr-util-1.5.4/ ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr &> /dev/null make &> /dev/null make install &> /dev/null echo "安装zlib" cd /root/zlib-1.2.8/ ./configure --prefix=/usr/local/zlib &> /dev/null make &> /dev/null make install &> /dev/null echo "安装pcre" cd ../pcre-8.39/ ./configure --prefix=/usr/local/pcre &> /dev/null make &> /dev/null make install &> /dev/null echo "安装opensll-1.0.1u" cd ../openssl-1.0.1u/ ./config -fPIC --prefix=/usr/local/openssl enable-shared &> /dev/null make &> /dev/null make install &> /dev/null mv /usr/bin/openssl /usr/bin/openssl.1.0.1e ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl echo "安装httpd" cd /root/httpd-2.4.23/ ./configure --prefix=/usr/local/http --enable-so --enable-cgi --enable-cgid --enable-ssl --with-ssl=/usr/local/openssl --enable-rewrite --with-pcre=/usr/local/pcre --with-z=/usr/local/zlib/ --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all --with-mpm=event --enable-proxy --enable-proxy-fcgi --enable-expires --enable-deflate &> /dev/null make &> /dev/null make install &> /dev/null ln -s /usr/local/http/bin/* /usr/local/bin/ sed -i s/#ServerName/Servername/g /usr/local/http/conf/httpd.conf cp /usr/local/http/bin/apachectl /etc/init.d/httpd sed -i '1 a # chkconfig: 35 85 15' /etc/init.d/httpd chkconfig --add httpd chkconfig httpd on apachectl start if [ $? -eq 0 ];then echo "!!!!!!Complete!!!!!!" fi
注意,openssl若是不安装上面的版本,能够直接
yum -y install openssl-devel
这样就省去了下载并源码安装openssl的时间了,由于安装openssl时间很长。