http
Hyper text transfer protocol
协议版本
http/1.0:
客户端与服务器端通信的方式有:GET POST HEAD PUT DELETE TRACE OPTIONS
http/1.1:增加了缓存功能
http/2.0:最新的版本
html
<html>
<head>
<title>
浏览器标签的显示内容
</title>
</head>
<body>
<h1></h1>子标题
<p> blablabla</p>
</body>
</html>
web资源
静态资源:图片,文本文件 无需服务端做出额外的处理
动态资源:服务端需要通过执行程序做出处理,发送给客户端的是程序运行的结果
一次完成的http请求处理过程
1、建立或处理连接:接收请求或拒绝请求
2、接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程;
3、处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息;
4、访问资源:获取请求报文中请求的资源;
5、构建响应报文:
6、发送响应报文;
7、记录日志;
并发访问响应模型
1、单进程IO:启动一个进程处理用户请求;这意味着,一次只能处理一个请求
2、多进程IO:并行启动多个进程,每个进程响应一个请求
3、复用IO:一个进程响应多个客户请求。1、多线程模式:1个主进程生成n个线程,一个线程处理一个请求。2、事件驱动(event-driven):一个进程直接响应N个请求
4、复用的多进程IO:启动多个进程,每个进程生成N个线程
访问资源
获取请求报文中请求的资源
web服务器:即存放了web资源的主机,负责向请求者提供对方请求的静态资源,或动态资源运行生成的结果。这些资源通常应该放置于本地文件系统某路径下,此路径称为DocRoot
比如资源在本地的路径为/var/www/html/images/logo.jgp。如果/var/www/html是DocRoot,那么网页上的访问路径是:http://yueyuelearning.com/images/logo.jgp。
http请求处理中的连接模式
1、保持连接模式(长连接):keep-alive
2、非保持连接模式(短连接)
httpd特性
高度模块化:core + modules
DSO:Dynamic Shared object 动态装卸载
MPM:Multipath processing Modules(多路处理模块)
处理机制prefork 多进程模型 每个进程响应一个请求
一个主进程:负责生成及回收子进程;创建套接字;负责接收请求并将请求转发给子进程 N个子进程:每个子进程处理一个用户请求。
工作模型:会预先生成几个空闲进程,随时等待用于响应用户请求,最大空闲和最小空闲。
worker 多进程,多线程模型,使用每个线程处理一个用户请求。
一个主进程:负责生成子进程;负责接收请求并将请求转发给子进程
多个子进程:每个子进程负责生成多个线程
每个线程:负责响应用户请求
event 事件驱动模型,多进程模型,每个进程响应多个请求
一个主进程:负责生成子进程;负责创建套接字,负责接收请求并将请求转发给子进程
子进程:基于事件驱动机制,直接响应多个客户请求
这个httpd的特性要记住,以后配置http工作方式的时候要用到。
httpd的版本
httpd1.3:官方已经停维
httpd 2.0:
httpd 2.2:主流版本 不支持event多路处理模块机制 CentOS6默认程序
httpd 2.4:目前最新稳定版本,也是主流版本 CentOS7默认程序