HTTP:超文本传输协议
web:
http/0.9:仅纯文本(超链接),ACSII
HTML:hypertext mark language
title
URI:uniform resource indentifier 全局范围内
统一:路径格式上的统一
URL:uniform resource locator
protocol://HOST:post/path/to/file
web资源 多个资源可被整合为一个HTML文档
web对象
http方法:PUT,POST,DELETE
MIME:多用途互联网邮件扩展
将非文本数据在传输前重新编码为文本格式,接收方能够用相反的方式将其重新还原为原来的格式,还能够调用相应的程序打开此文件
动态网页:服务器端存储的脚本非HTML格式,而是编程语言开发的脚本
脚本接收参数后在服务器运行一次,运行完成后生成HTML文档,并传给客户端
执行脚本不是web服务器本身,由web服务器转交给其他解释器,解释器执行脚本结束后生成HTML文档回送给WEB服务器,
web server再传给用户
包含静态内容和动态内容
缓存:
http报文:请求报文
响应报文
请求报文语法:
响应报文语法:
状态代码:
1xx:纯信息
2xx:"成功"类的信息 200
3xx:重定向类的信息 301,302,304
4xx:"客户端错误类"的信息 404
5xx:服务器端错误类的信息 501,504,500
请求报文:
GET / HTTP/1.1
Host: www.magedu.com
Connection: keep-alive
响应报文:
HTTP/1.1 200 OK
X-Powered-By: PHP/5.2.17
Vary: Accept-Encoding,Cookie,User-Agent
Cache-Control: max-age=3, must-revalidate
Content-Encoding: gzip
Content-Length: 6931
上面两个报文的第一行通常称作报文“起始行(start line)”;后面的标签格式的内容称作首部域(Header field),每个首部域都由名称(name)和值(value)组成,中间用逗号分隔。另外,响应报文通常还有一个称作Body的信息主体,即响应给客户端的内容。
Web服务器的主要操作
1、建立连接――接受或拒绝客户端连接请求;
2、接收请求――通过网络读取HTTP请求报文;
3、处理请求――解析请求报文并做出相应的动作;
4、访问资源――访问请求报文中相关的资源;
5、构建响应――使用正确的首部生成HTTP响应报文;
6、发送响应――向客户端发送生成的响应报文;
7、记录日志――当已经完成的HTTP事务记录进日志文件;
http, tcp: 三次握手,四次断开
http/1.1:
增强了缓存的功能
长连接
Web服务器处理并发连接请求的架构方式
1、单线程web服务器(Single-threaded web servers)
此种架构方式中,web服务器一次处理一个请求,结束后读取并处理下一个请求。在某请求处理过程中,其它所有的请求将被忽略,因此,在并发请求较多的场景中将会出现严重的必能问题。
2、多进程/多线程web服务器
此种架构方式中,web服务器生成多个进程或线程并行处理多个用户请求,进程或线程可以按需或事先生成。有的web服务器应用程序为每个用户请求生成一个单独的进程或线程来进行响应,不过,一旦并发请求数量达到成千上万时,多个同时运行的进程或线程将会消耗大量的系统资源。
3、I/O多路复用web服务器
为了能够支持更多的并发用户请求,越来越多的web服务器正在采用多种复用的架构――同步监控所有的连接请求的活动状态,当一个连接的状态发生改变时(如数据准备完毕或发生某错误),将为其执行一系列特定操作;在操作完成后,此连接将重新变回暂时的稳定态并返回至打开的连接列表中,直到下一次的状态改变。由于其多路复用的特性,进程或线程不会被空闲的连接所占用,因而可以提供高效的工作模式。
4、多路复用多线程web服务器
将多进程和多路复用的功能结合起来形成的web服务器架构,其避免了让一个进程服务于过多的用户请求,并能充分利用多CPU主机所提供的计算能力。
httpd:
web server , open source
事先创建进程,按需维持适当的进程
模块化设计,核心较小,各种功能都模块化添加(包括php)
支持运行时配置,单独编译模块
支持多种方式的虚拟主机配置
虚拟主机:
基于ip的虚拟主机
基于端口的虚拟主机
基于域名的虚拟主机
支持https协议(mod_ssl)
支持用户认证
支持基于ip或主机名的访问控制机制ACL
支持每目录的访问控制
支持URL重写
web:
http/0.9:仅纯文本(超链接),ACSII
HTML:hypertext mark language
title
URI:uniform resource indentifier 全局范围内
统一:路径格式上的统一
URL:uniform resource locator
protocol://HOST:post/path/to/file
web资源 多个资源可被整合为一个HTML文档
web对象
http方法:PUT,POST,DELETE
MIME:多用途互联网邮件扩展
将非文本数据在传输前重新编码为文本格式,接收方能够用相反的方式将其重新还原为原来的格式,还能够调用相应的程序打开此文件
动态网页:服务器端存储的脚本非HTML格式,而是编程语言开发的脚本
脚本接收参数后在服务器运行一次,运行完成后生成HTML文档,并传给客户端
执行脚本不是web服务器本身,由web服务器转交给其他解释器,解释器执行脚本结束后生成HTML文档回送给WEB服务器,
web server再传给用户
包含静态内容和动态内容
缓存:
http报文:请求报文
响应报文
请求报文语法:
响应报文语法:
状态代码:
1xx:纯信息
2xx:"成功"类的信息 200
3xx:重定向类的信息 301,302,304
4xx:"客户端错误类"的信息 404
5xx:服务器端错误类的信息 501,504,500
请求报文:
GET / HTTP/1.1
Host: www.magedu.com
Connection: keep-alive
响应报文:
HTTP/1.1 200 OK
X-Powered-By: PHP/5.2.17
Vary: Accept-Encoding,Cookie,User-Agent
Cache-Control: max-age=3, must-revalidate
Content-Encoding: gzip
Content-Length: 6931
上面两个报文的第一行通常称作报文“起始行(start line)”;后面的标签格式的内容称作首部域(Header field),每个首部域都由名称(name)和值(value)组成,中间用逗号分隔。另外,响应报文通常还有一个称作Body的信息主体,即响应给客户端的内容。
Web服务器的主要操作
1、建立连接――接受或拒绝客户端连接请求;
2、接收请求――通过网络读取HTTP请求报文;
3、处理请求――解析请求报文并做出相应的动作;
4、访问资源――访问请求报文中相关的资源;
5、构建响应――使用正确的首部生成HTTP响应报文;
6、发送响应――向客户端发送生成的响应报文;
7、记录日志――当已经完成的HTTP事务记录进日志文件;
http, tcp: 三次握手,四次断开
http/1.1:
增强了缓存的功能
长连接
Web服务器处理并发连接请求的架构方式
1、单线程web服务器(Single-threaded web servers)
此种架构方式中,web服务器一次处理一个请求,结束后读取并处理下一个请求。在某请求处理过程中,其它所有的请求将被忽略,因此,在并发请求较多的场景中将会出现严重的必能问题。
2、多进程/多线程web服务器
此种架构方式中,web服务器生成多个进程或线程并行处理多个用户请求,进程或线程可以按需或事先生成。有的web服务器应用程序为每个用户请求生成一个单独的进程或线程来进行响应,不过,一旦并发请求数量达到成千上万时,多个同时运行的进程或线程将会消耗大量的系统资源。
3、I/O多路复用web服务器
为了能够支持更多的并发用户请求,越来越多的web服务器正在采用多种复用的架构――同步监控所有的连接请求的活动状态,当一个连接的状态发生改变时(如数据准备完毕或发生某错误),将为其执行一系列特定操作;在操作完成后,此连接将重新变回暂时的稳定态并返回至打开的连接列表中,直到下一次的状态改变。由于其多路复用的特性,进程或线程不会被空闲的连接所占用,因而可以提供高效的工作模式。
4、多路复用多线程web服务器
将多进程和多路复用的功能结合起来形成的web服务器架构,其避免了让一个进程服务于过多的用户请求,并能充分利用多CPU主机所提供的计算能力。
httpd:
web server , open source
事先创建进程,按需维持适当的进程
模块化设计,核心较小,各种功能都模块化添加(包括php)
支持运行时配置,单独编译模块
支持多种方式的虚拟主机配置
虚拟主机:
基于ip的虚拟主机
基于端口的虚拟主机
基于域名的虚拟主机
支持https协议(mod_ssl)
支持用户认证
支持基于ip或主机名的访问控制机制ACL
支持每目录的访问控制
支持URL重写