http与httpd

http协议javascript

--------------------------------------------------
  实验:
  Yum install httpd php php-mysql mariadb-server //安装相关文件php

  启动httpd以及mariadb服务,并关闭防火墙以及selinux;
  Systemctl start httpd
  Systemctl start mariadb
  Iptables -F
  Systemctl stop firewalld
  Seteforce 0css

  测试是否安装成功
  Vim /var/www/html/index.php
  <?php
    Phpinfo();
  ?>
    访问,可以看到php的测试主页面便可
    http://192.168.94.130html

  vim /var/www/html/index.php
  <?php
    $conn=mysql_connect(‘127.0.0.1’,’root’);
    If ($conn)
      Echo “ok”;
    Else
      Echo “false”;
    Mysql_close();
  ?>
    访问,可以看到php的测试数据显示ok则表示正确;前端

  在数据库上建立用户;
  Mysql
  Grant all on wpdb.* to ‘wpuser’@’localhost’ identified by ‘wppasswd’;
  Grant all on wpdb.* to ‘wpuser’@’127.0.0.1’ identified by ‘wppasswd’;
  Create database wpdb;
  Flush privileges;
  Exit
    查看用户是否添加成功
    Mysql -uwpuser -pwppasswd
    Show databases;java

  修改wordpress的配置文件
  Unzip workpress-4.3.1-zh_CN.zip
  Cp -a wordpress /var/www/html/
  Cd /var/www/html/wardpress
  Cp wp-config-sample.php wp-config.php
    添加数据库,用户,以及密码
    Vim wp-config.php
    Define(‘DB_NAME’, ‘wpdb’);
    Define(‘DB_USER’, ‘wpuser’);
    Define(‘DB_PASSWORD’, ‘wppasswd’);mysql

  访问测试:
  在流量器上访问:http://192.168.94.130/wdpresslinux

---------------------------------------------------------------------------------------web

一、套接字 (进程间通信)
  tcp/ip -- osi sql

  应用层 --> 资源子网 (提供正真客户所须要的资源信息 -- 应用层!)
  --------
  传输层 --> tcp udp
  网络层 --> 通信子网 (内核提供)
  主机到主机层

  套接字概念:关联应用层资源与底层的网络;使得,不一样主机之间可以实现应用数据的交互;
  全部进程间通信的机制,咱们都叫作IPC机制(进程间通信);套接字只是 IPC 机制中的一种而已;
    常见的IPC通信机制:

      一、MQ -- 消息队列
      二、socker 套接字
      三、single 信号
      四、共享内存

  分类:
    根据数据包封装的状况分类:
      一、SOCK_STREAM tcp的套接字
      二、SOCK_DGRAM udp的套接字
      三、SOCK_RAM 裸套接字
    地址簇来进行分类:
      一、IPV6的套接字
      二、IPV4的套接字
      三、UNIX的套接字

  咱们也能够将套接字理解为内核的系统调用 -- system call(C语言开发相关的底层代码 -- 相似于函数):
    编译型(面向过程的)的编译语言的调用 -- 函数
    解释型(面向对象的)的编程语言的调用 -- 类
  套接字相关的应用:
    socket() 建立套接字
    listen() 监听
    accept() 接受请求
    connect() 请求链接创建
    write() 发送数据
    read() 从缓存中接受数据

  咱们http协议,使用B/S架构(浏览器与服务器架构)就须要经过套接字的方式进行数据传输!!!
    http://www.baidu.com/... -- URL
      /... --> 指定资源 URI
      http --> 协议
      www --> 提供指定服务的主机的主机名
      baidu.com --> 域名

二、http协议基础
  超文本传输协议
  默认状况下,http协议就是用来实现客户端与服务端的数据传输(文本);
    【流浪器必须安装插件】
  <html>
    <head>
      <title>Title</title>
    </head>
    <body>
      <h1></h1>
        <p> 内容 <a href="http://www.magedu.com/log.jpg"> 内容 </a> </p>
      <h2></h2>
    </body>
  </html>

  http默认只能传输文本文件 数据流
  |
  html css javascriptes //标签语言 -- 更好的规划文本格式! ,xml注入攻击
  |
  MIME
    Multipurpose Internet Mail Extensions : 多用途互联网邮件扩展类型
    用来展现图片以及视频数据;
    默认状况下,在传输的过程当中,依然文本流量;
    MIME只用做将文本与视频及图片进行转换;

  工做机制
    首先会创建TCP链接,http tcp80端口;C -- > S:80
      http请求
      http响应
      注意:请求是有不少的,(前端语言将不少的资源进行划分,而固定的服务器,只提供固定资源)
    因此,有可能请求了一次,可是实际上生成了不少的进程;
    http支持MPM (多处理模块)
      由于http提供的访问进程数量有限,因此,咱们须要启用一些访问机制,可以处理高并发流量;
      MPM模块支持三种模式:
        prefork -- 默认模式,队列模式
        worker -- 多线程模式
        event -- 多线程并发处理模式
          每个请求,我都叫一个IO;
    修改MPM模式:
      特性:http服务的MPM模式是在服务启动的那一刻加载进来的。
      目录:/etc/sysconfig/httpd -- http -2.2
                  -- http -2.4
      #HTTPD=/usr/sbin/httpd.worker
      去掉 # 便可;
      必须从新加载配置,这样才能生效;

      ps aux | grep httpd //查看当前所起的进程

      【注意:web服务是不能随便重启!!!】
      相关的配置文件能够在 /etc/httpd/conf/httpd.conf 文件中去设置;
        除了event模式没有--由于这种并不稳定,不建议使用;

  请求资源
    首先明白:如何识别这些资源 -- 文件后缀来识别;

    静态资源 -- 图片 jpg png 、文字 .txt .doc 、视屏 avi mp4 rmvd flv
    *动态资源 -- .php ... *
      LAMP / LNMP / LAMMP / LNMMP -- memcache
      php -- 加速器
      httpd优化 -- 权限限制、MPM的访问模式、虚拟主机搭建。。。

  http的版本 -- (不加密)
    HTTP协议版本:
    HTTP/0.9 最先的被普遍采用的版本 原型版本,不支持多媒体内容
    HTTP/1.0 第一个普遍使用的版本,如今依然被使用,能支持多媒体,可是缓存机制不行
    *HTTP/1.1 加强了缓存功能*当前使用的版本;
    HTTP/2.0 2001年就出来了,如今基于web的应用多数使用HTTP/2.0版本(新版本),它参考了谷歌的spdy协议,因此咱们有理由相信HTTP/2.0会被普遍使用
      默认安装的都是2.0版本;

---------------------------------------------------------------

  HTTP协议:
    TCP 80 http://192.168.94.128 - URL
  URL介绍
    URL的完整格式:
    协议类型://用户名,密码@hostname:port/URI;参数值?查询请求#标记
      示例:https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1

    URL包含URI,由URI来定义所要访问资源的具体位置;
    URN和URL是一个并列的东西(不作了解)

  *cookie机制
    cookie分类:
      永久cookie -- 把cookie值存在硬盘上(这里须要指定cookie的保存时间)
      临时cookie -- 把cookie值保存在内存上(重启流量器即失效)
    cookie很是不安全

  HTTP事务
    请求 request 和相应 replay,一个请求和一个相应合起来,咱们叫作一个HTTP事务;
    (事务:一次完整的会话,或者工做,才能被称为一个事务;)
            mysql
          A   --------------------->   B
          1000        500
          1000-300=700 ----------> 500+300=800
          mysql -- 事务回滚

    报文格式 -- http的请求报文 http的应答报文
      http 请求报文:
        首行信息: 模式 URI 版本信息
        头部信息: 头部
        请求主体: 实体信息

      http 应答报文:
        首行信息: 版本信息    状态码   缘由短语
                 200     OK
        头部信息:
        应答主体:

    method(模式):
      GET 普通的请求
      HEAD 之请求网站的头部信息
      POST 推送用户名或密码的时候使用的
      PUT 推送比较大的资源的时候使用的
      DELETE 发起删除对应资源的命令
      TARCE 允许客户端查看,被修改后的http请求报文(由于中间经过了代理服务器,而代理服务器会修改咱们的请求表文)
      OPTIONS 客户端去咨询服务器端所能支持模式;
      还有其余不少的扩展模式 -- 例如:MOVE LOCK 等等。

    version:http的版本
      常见使用的版本为 1.1

    status:相应状态码,例如200,301,302,404,502
      100-199 表示服务器信息回应 100 101
      200-299 表示成功的请求
        常见的--200 ok 201 create
      300-399 表示重定向
        301 请求的URL指向的资源已经被删除:但在响应报文中经过首部Location指明了资源如今所处的新位置;这个是永久重定向:Moved Permently
        302 与301类似,可是在响应报文中,经过Location指明了资源如今所处的临时新位置;Found
        304 客户端发出了条件式请求,可是服务器发现客户端的缓存资源不曾发生改变,则经过响应状态码通知客户端:Not Modified
      400-499 客户端错误状态码
        401 须要输入帐号和密码认证方能访问资源,Unauthorizad
        403 请求被禁止:forbidden
        404 服务器没法找到客户端请求的资源:Not Found
      500-599 服务器端错误
        500 服务器内部错误:Internal Server Error
        502 代理服务器从后端服务器收到一条伪响应,Bad Gatway

    reason-phrase(缘由短语):状态码说明
        如上

相关文章
相关标签/搜索