HTTP服务

来源:互联网 发布:手机内窥镜软件 编辑:程序博客网 时间:2024/06/11 16:42

  http是超文本传输协议,即可以在互联网上传输各种形式的文档,例如text、jpeg、mp4等。/etc/mime.types文件中记录了http支持的文档的格式

httpd软件可以实现http服务器端的功能,客户端是浏览器 。http的通信过程:用户访问浏览器,数据先经过httpd封装头部(应用层),然后经TCP封装头部(传输层),依次向下。具体过程如图:


 http协议用到的基本命令有:get(从服务器上下载内容)

                                                    post(上传内容)
                                                    head(只看头部信息)

使用curl命令访问网页时,若只看网页的头部信息(http封装的头部)用到:curl -I 。但是http本身不能保存用户登录的身份等信息,原则上用户每刷新一次网页,都要重新输入登录信息。

所以web服务请求处理的步骤大体可以分为7步(可以结合DNS):

1.建立连接(三次握手)
2.接收请求
3.处理请求(判断是上传还是下载)
4.访问资源(服务器从硬盘读取资源)(内核与进程间的通讯)
5.构建响应(将资源读入Web服务器的进程中),即封装http的响应报头--->最后形成完整的http数据包
6.发送响应
7.记录日志

一、httpd的功能特性
1.虚拟主机(一台服务器上搭建多个网站)
2.CGI:通用网关接口(支持动态页面):两个软件之间的通信协议不同,连接这两个时要用通用网关接口
3.反向代理:(Reverse Proxy)是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
4.负载均衡:将请求转发不同的服务器
5.路径别名:www.360buy.com---->www.jd.com
6.丰富的用户认证机制
7.支持第三方软件
二、http的安装
centos6的操作系统安装2.2版本,可以用rpm方式安装,httpd软件包有三个主程序:


1.设为开机启动,启动程序 


启动后显示两行警告内容(可以消除),但不影响启动 


程序启动后运行的是httpd程序(prefork工作模式),默认有一个root账户和apache账户 


httpd程序安装是创建了apache账户 


进程文件是自动生成的,存放了一个进程编号:root账户的进程编号



关闭服务,文件消失:  


手动创建文件,输入内容,启动服务后,新生成的文件会覆盖创建的文件
启动服务后开启的若干进程的关系:root是父进程,其他是子进程(默认八个进程会同时响应八个用户的访问)



三、关于版本

httpd程序默认显示版本号,有安全隐患,需要用命令将其隐藏 


主配置文件中,默认显示的版本号是FULL,将下列行注释,显示FULL对应的版本号 


基于安全考虑,应设置为Prod,只显示apache 

检查语法 



四、关于端口与地址

默认httpd服务可以对所有IP进行访问,80端口没有设置监听具体IP地址 


更改对外服务的IP地址(可以监听多个端口)
主配置文件中:




结果:无法访问另一个地址(80端口没有指定地址,可以访问任意地址,但是指定的8080端口只能访问192) 


注:必须写监听的端口,将端口全部注释掉,服务将无法启动
       更改配置文件,除了重启服务,也可以reload生效(重启服务会影响现有连接的用户)

五、关于模块

主配置文件中,有许多加载模块,用命令查看开机有哪些模块加载 :httpd -M

可以手动添加模块,按照相应的格式:模块名+相对路径(相对于/etc/httpd的路径)/etc/httpd下有modules目录,里面有许多模块 


相应的模块还可以放在/etc/httpd/conf.d目录下,而不必放在主配置文件下(模块写在自己独立目录下) 




将模块写入 



原创粉丝点击