• Linux基础知识_13 -- http&httpd


    http协议

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

      

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

      测试是否安装成功

     
       Vim /var/www/html/index.php   
          <?php Phpinfo();       ?>

      访问,能够看到php的测试主页面即可
        http://192.168.94.130

      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;
    

      修改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’);
    

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

        docker方式搭建 wordpress 平台;----比较容易便捷

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

    1、套接字 (进程间通讯)

         tcp/ip  --  osi 
         应用层 --> 资源子网 (提供正真客户所需要的资源信息 -- 应用层!) 
         --------
         传输层 --> tcp udp
         网络层  -->  通讯子网  (内核提供)
         主机到主机层
         套接字概念:关联应用层资源与底层的网络;使得,不同主机之间能够实现应用数据的交互; 
         所有进程间通讯的机制,我们都叫做IPC机制(进程间通讯);套接字只是 IPC 机制中的一种而已;
              常见的IPC通讯机制:1、MQ -- 消息队列
                          2、socker 套接字
                             3、single 信号
                          4、共享内存
         分类:
              根据数据包封装的情况分类:
                1、SOCK_STREAM  tcp的套接字
                2、SOCK_DGRAM udp的套接字
                3、SOCK_RAM 裸套接字
              地址簇来进行分类:
                1、IPV6的套接字
                2、IPV4的套接字
                3、UNIX的套接字
     
         我们也可以将套接字理解为内核的系统调用 -- system call(C语言开发相关的底层代码 -- 类似于函数):
                编译型(面向过程的)的编译语言的调用 -- 函数
                解释型(面向对象的)的编程语言的调用 -- 类
         套接字相关的应用:
                socket() 创建套接字
                listen() 监听
                accept() 接受请求
                connect() 请求连接建立
                write() 发送数据
                read() 从缓存中接受数据
     
         我们http协议,使用B/S架构(浏览器与服务器架构)就需要通过套接字的方式进行数据传输!!! 
              http://www.baidu.com/...  -- URL
                   /...  --> 指定资源  URI
                   http --> 协议
                   www  -->  提供指定服务的主机的主机名
                   baidu.com  -->  域名

    2、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(原因短语):状态码说明
               如上
  • 相关阅读:
    k8shelm
    利用TweenMax实现贝塞尔曲线运动
    flashPlayer自动降频后webgame处理技巧
    求字符串长度的好方法
    robotlegs 笔记
    pureMVC的svn地址
    完美解决as3在ie中初始化时stageWidth和stageHeight为0的问题
    God of War Ascension / 战神4, 再一次迎来新导演!
    《危情谍战 Knight and Day》又一部好电影!
    未来,突破束缚是唯一的选择?
  • 原文地址:https://www.cnblogs.com/lzqitdl/p/11505274.html
Copyright © 2020-2023  润新知