HTTP: HyperText Transfer Protocal :超文本传输协议
超链接
web:
    http/0.9:仅支持纯文本
    HTML:HyperText Mark Language
browser:www的客户端
URI:Uniform Resource Indetifier统一资源标识符包括但不仅限于互联网
        统一:路径格式的统一
    子对象:URL:Uniform Resource Loacator用来描述互联网的统一标示格式
    格式:protocal://Host:port/path/to/file
web资源:让web浏览器访问的文件 web对象
    多个资源很可能被整合为一个html文档
http方法: telnet IP   提交首部  获得反应
    GET
    POST 提交
    PUT 上传
    DELETE 删除
    HEAD 只返回head信息   
    Trace
    options
    connection
MIME:Multipuipose Internet Mail Extension 多用途互联网邮件扩展
SMTP:Simple Mail Transmission Protocol 简单邮件传输协议
    MIME:将非文本数据在传输前重新编码为文本格式,接收方能后还原为以前的格式,还能调用相应的程序来打开此文件。
    Base64:一种编码格式
动态效果:
    ActiveX
    flash
    Java,Applet(由于太重被淘汰)   JRE解析代码
动态网页:服务器端存储的非HTML格式,而是编程语言开发的脚本,服务器接收参数后在服务器运行一次,运行完成后会生成HTML的文档,把生成的文档发给客户端
    web-->protocal-->php(运行)-->html
    动态网页包含静态内容和动态内容,动态内容才需要运行。
缓存:
HTTP首部:http报文 :请求报文,响应报文
    get /2.html
    主机名
请求报文语法:
    <method> <request-URL> <version>
    <headers>
    <entity-body>
     如 :
    GET / HTTP/1.1
    Host: www.laoguang.

    Connection:keep-alive
响应报文:
    <version> <status> <reason-phrase>
    <headers>

    <entity-body>
    状态代码:
    1xx:纯信息
    2xx:成功类信息 (200 正常相应 )
    3xx:重定向信息 (301永久重定向,302临时,304没有发生任何改变)
    4xx:客户端错误类信息 (404文件不存在)
    5xx:服务端错误类信息
http/1.1
    增强了缓存
    增加了长连接
应用程序服务器
    IIS   
    tomcat(apache,JSP,open source)
    Websphere(IBM,JSP)
    Weblogic(Oracle,JSP,commodity)
    JBoss(Redhat,open source)

查看服务器用的软件www.netcraft.com

Apache:17年
ASF:Apache Software Foundation
    web:httpd
        Tomcat  php解释
        Hadoop  并行管理环境
httpd:
    1.实现创建进程
    2.按需维持适当进程
    3.模块化设计,核心短小精悍,各种功能都模块添加(PHP)
        支持运行配置,支持单独编译模块
    4.支持多种方式的虚拟主机配置
        虚拟主机:物理服务器一个,web程序也只有一个,却可以服务多个不同站点
        套接字(Socket):IP:port
            基于IP的虚拟主机
            基于端口的虚拟主机
            基于域名的虚拟主机
    5.支持Https协议 (mod_ssl)
    6.支持用户认证
    7.支持基于IP或主机名的ALC
    8.支持目录的访问控制
    9.支持URL重写

RedHat(httpd):
    rpm包
    源码编译
httpd:
    /usr/sbin/httpd(MPM:prefork)
    httpd:root,root (master process)
    httpd:apache,apache (worker worker)
    /usr/rc.d/init.d/httpd
    Port:(80/tcp)(ssl:443/tcp)
    /etc/httpd工作根目录程序安装目录
    /etc/httpd/conf配置文件目录
        httpd.conf
        /etc/httpd/conf.d/*.conf使用Include来包含
    /etc/httpd/modules:模块目录
    /etc/httpd/logs-->/var/log/httpd日志目录
        访问日志:access_log
        错误日志: err_log
    /var/www/html 静态页面所在目录
    /var/www/cgi-bin 动态页面使用目录
        Common Gateway Interface
        perl,python,java(Servlet,JSP),php
        fastcgi:
        程序:指令和数据
            管理数据的服务器:数据服务器
/etc/httpd/conf/httpd.conf
    directive  value
    指令不区分大小写,值区分大小写 LoadRunner HP的测试工具很强大很暴力
    MPM:Multi Path Modules 多道处理模块
        mpm_winnt
        prefork : 一个请求用一个进程相应
        worker:一个请求用一个线程响应,启动多个进程,每个进程生成多个线程
        event :一个进程处理多个请求

URL路径跟本地文件路径不是一码事,URL是相对于DocumentRoot而言的
    Options
        Indexes:允许索引目录
        None:不支持任何选项
        FollowSymLinks:允许追踪符号链接
        Includes:允许执行服务端包含(SSI)
        ExecCGI:允许允许CGI脚本
        Multiview:语言自适应
        ALL:启用所有选项
        +|- 子目录增加或减少选项,如果没有+|-就是覆盖继承
    AllOverride ACL访问机制
        None,Auth
    Order:基于主机的访问功能的,IP或网络地址定义访问控制机制
        Order allow,deny
        Deny from 192.168.0.0/24
            地址的表示方式:IP network/netmask HOSTNAME DOMAINNAME partial IP
        httpd -t 测试语法
        htpasswd -c -m file username
        PV:Page View 每天的页面访问量
        Uv:User View 每天的独立IP访问
CGI 一种协议,按需调用某个程序
Apache跟动态内容环境结合的方式:
    1,做成apache模块   一个进程处理
    2,基于CGI通信      web进程需要动态内容解析的,交给解析器,解析完毕后返回给web
    3,基于fastCGI      一个服务器自己管理自己的CGI
虚拟主机:
    先取消中心主机,只需要注释掉中心主机DocumentRoot即可
物理服务器只能运行一个站点,但虚拟主机可以为多个站点服务
socket IP:PORT
    基于IP的虚拟主机,使用不同的IP
    基于Port的虚拟主机,使用不同的port提供不同的站点
    基于主机头的虚拟机主机,使用不同的主机名提供不同的站点
<VirtualHost IP:PORT>
    DocumentRoot "/path/to/file"
    ServerName ""
    ServerAlias ""
    <Directory "/path/to/file">
        定义访问规则
    </Directory>
    ErrorLog logs/site1.err_log
    CustomLog logs/site1.access_log combined
</VirtualHost>
SSL
    Secure Socke Layer
        SSLv2,SSLv3
TLS    Transport Layer Secure
        v1相当于SSLv3
SSL会话建立是基于IP的,也就是说虚拟主机不能使用
httpd (mod_ssl) -->https 实现
1,为web服务器提供证书
2,安装mod_ssl,让httpd 支持ssl功能
3,配置httpd使用签名提供的证书和私钥
4,验证(客户端信任的ca证书)
MVC
php:用于开发动态网页,是一种脚本语言,在服务器端运行,嵌入到HTML,面向对象
php,PHP License 不要声称自己是PHP就行

BBS:
    discuz   qq
    phpwind  alibaba
    phpbb 
blog:
    wordpress
    drupal CMS,Content Managing System
SQL:MySQL,PostgreSQL 轻量级
    默认:3306端口
Oracle Sybase Informix

SQL Server

 

 

数据库查询会拖慢速度
静态化,动态内容提取出来
HTTP Hyper Text Transfer Protocol 80/tcp
HTTPS 基于ssl/TLS的Http   443/tcp
HTML :Hyper Text Mark Language
Server: Apache,Nginx,Lighttpd,
request
<method> <usr><version>
httpd headers
空白行
<body>

response
<version><status code><reason_phrase>
httpd headers
空白行
<body>
get,post,put,head,delete,options,trace,connection
ServerSignature 显示apache信息
Context Switch (CS) 上下文切换
保存现场
恢复现场
I/O多路复用模型
    select() prefork
    poll()
    epoll()     linux当前最流行