HTTP服务&AJAX编程

一、服务器

        1. 什么是服务器?

能够提供某种服务的机器(计算机)称为服务器。

2.服务器的分类:

             1.按系统分类:Linux  windows
        2.按应用软件:appache IIS  tomcat
        3.按使用场景:web(http)服务器 数据库服务器 邮件服务器

 

二、网络基础

1.IP地址

 IP:计算机在网络中的地址
       查看本机IP地址 ping、ipconfig、ifconfig

2.域名

域名:IP的面具,为了让用户更容易找到网站

查看域名对应的IP地址 ping

3.DNS服务

DNS服务器:将域名返回给浏览器(其中存储域名-IP信息)

查找优先级 本机hosts文件、DNS服务器

ipconfig /flushdns

4.端口

查看端口占用情况 netstat -an

常见端口号 80、8080、3306、21、22

三、C/S和B/S

1.CS:client(客户端)/server(服务器)

           优点:效果比较酷炫,运行效率比较高,性能比较好
    缺点:使用对应的功能,必须下载对应的客户端
         如果服务更新了,客户端一般也需要更新

2.BS:B(browser)/server(服务器)

           优点:服务更新的时候,浏览器不需要更新  方便快捷
    缺点:性能不太好,运算性能不好
       效果不够酷炫

四、搭建HTTP服务

Windows + Apache + Mysql + PHP,首字母组合。

1. 安装WampServer

安装wampserver,和普通软件安装无差别,除指定安装路径外,其它默认安装。

 

2.管理HTTP服务

任务图标绿色为正常启动状态

注意事项:

1、检查网络是不是通的 ping 对方IP

2、检查防火墙是否开启,如果开启将不能正常被访问

3、检查访问权限 Allow from all

4、理解默认索引

5、确保端口没有被其它程序占用

6、“#”表示注释

7、修改配置要格外小心,禁止无意修改其它内容

PHP基础

写法:文件以.php后缀结尾,所有程序包含在<?php /** 这里是代码 **/ ?>

避免使用中文目录和中文文件名

五、 变量

1、变量以$开头 字母/数字/下划线 不能以数字开头

2、大小写敏感(区分大小写)

六、数据类型

字符型、整型、浮点型、布尔型、数组、对象、NULL

单引号&双引号区别

索引数组、关联数组(了解即可)

echo只能打印出来简单类型的值,null和布尔值false都会做隐式转换。

1. 内容输出

echo:输出简单数据类型,如字符串、数值

print_r():输出复杂数据类型,如数组

var_dump():输出详细信息,如对象、数组(了解)

 注意:中文汉字出现乱码,为编码的问题  
            //设置编码
            header("Content-Type:text/html;charset-utf-8");

七、运算符

基本与Javascript语法一致

. 号表示字符串拼接符,Javascript中为+号

 

八、 函数

与Javascript基本一致

函数名对大小写不敏感

默认参数(了解即可)

  1. <?php
  2. //php中的函数
  3. // js方法
  4. // function sayHi(){
  5. // console.log("sayHi");
  6. // }
  7. // sayHi();
  8. function sayHi($name='zhangsan'){
  9. echo "Hello ".$name;
  10. }
  11. // sayHi('world!!'); 有参数且传参
  12. // sayHi(); 有参数不传参 解决:定义参数的时候,给参数一个默认值 当不传 默认值 传就是当前传的值
  13. sayHi('lisi');
  14. ?>
 

九、分支、循环语句

与Javascript基本一致

foreach()

  1. <?php
  2. // php中的分支语句
  3. // 判断语句 switch
  4. // js if(条件){}else{}
  5. // js switch(条件){ case 选项: 执行的语句; break; default: 执行的语句;break;}
  6. $married=false;
  7. $name="gaoyuanyaun";
  8. if($married){
  9. echo "那我就重新找其他明星吧";
  10. }else{
  11. echo $name." 嫁给我吧!!";
  12. }
  13. echo "<br>-----------------------<br>";
  14. $today="周二";
  15. switch($today){
  16. case"周二":
  17. echo "周二激情四射";
  18. break;
  19. case"周三":
  20. echo "周三还是激情";
  21. break;
  22. default:
  23. echo "我们来睡个觉吧!!";
  24. break;
  25. }
  26. ?>
 

十、数组、遍历数组

  1. <?php
  2. // js数组 var arr=new Array(); var arr=[1,2,4];
  3. // 定义php数组
  4. $arr=array(1,2,"gaoyuanyuan",3.1415926,true);//索引数组
  5. // 0 => int 1
  6. // 1 => int 2
  7. // 2 => string 'gaoyuanyuan' (length=11)
  8. // 3 => float 3.1415926
  9. // 4 => boolean true
  10. // 打印输出PHP数组
  11. echo $arr;
  12. // 问题:打出索引值 结构 值的类型 长度
  13. var_dump($arr);
  14. // 遍历php数组
  15. // js for
  16. // for(var i=0;i<arr.length;i++){
  17. // arr[i]
  18. // }
  19. // count(数组)方法 返回值是数组的长度
  20. // $leng=$arr.length;
  21. $leng=count($arr);
  22. // echo $leng;
  23. // php数组和js区别:数组没有length属性
  24. // 错误写法
  25. // for($i=0;$i<$arr.length;$i++){
  26. // echo $arr[$i];
  27. // }
  28. // 正确的
  29. for($i=0;$i<$leng;$i++){
  30. echo $arr[$i].',';
  31. }
  32. echo "<br>-------------<br>";
  33. // 在js中有一个数据类型 对象
  34. // var obj={
  35. // name:"zhangsan",
  36. // age:18
  37. // }
  38. $arrguanlian=array('name'=>'zhangsan','age'=>18);//关联数组
  39. // 遍历 foreach既可以遍历索引数组还可以遍历关联数组
  40. // foreach(){}
  41. // foreach(数组名 as $k=>$v){
  42. // }
  43. // 遍历关联数组
  44. foreach($arrguanlian as $k=>$v){
  45. echo $k.'-----'.$v;
  46. echo "<br>-------------<br>";
  47. }
  48. // 遍历索引数组
  49. foreach($arr as $k=>$v){
  50. echo $k.'-----'.$v;
  51. echo "<br>-------------<br>";
  52. }
  53. ?>

十一、系统函数检查数组,常用的函数

       常用系统函数   in_array() 是否在数组中  array_key_exists ()检测数组中是否存在key
         in_array() 是否在数组中
                count() 计算数组长度
                array_key_exists ()检测数组中是否存在key
                file_get_contents读取文件
  1. <?php
  2. $arr=array('name'=>'congcong','age'=>80);
  3. // in_array(判断的值,数组) 是否在数组中 判断一个值是否在数组中 返回值是boolean true 或false
  4. $flag=in_array(80,$arr);
  5. echo $flag;
  6. //array_key_exists()检测数组中是否存在一个键 返回值是boolean true 或false
  7. $flag1=array_key_exists('name',$arr);
  8. echo $flag1;
  9. ?>

十二、表单处理

表单name属性的是用来提供给服务端接收所传递数据而设置的

表单action属性设置接收数据的处理程序

表单method属性设置发送数据的方式

当上传文件是需要设置 enctype="multipart/form-data",且只能post方式

$_GET接收 get 传值

$_POST接收 post 传值

$_FILES接收文件上传

1.get方式

  1. <!DOCTYPE html>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>Document</title>
  6. </head>
  7. <body>
  8. <!--1.action 代表数据提交到什么地方 服务器php -->
  9. <!--2.用什么样的方式提交 get post-->
  10. <!--用户名密码都应该存在一个变量中
  11. name属性的值是作为一个key来存储用户输入的信息的
  12. -->
  13. <formaction="form.php"method="get">
  14. <inputtype="text"name="username"id="user">
  15. <inputtype="password"name="password"id="pass">
  16. <inputtype="submit"value="提交">
  17. </form>
  18. </body>
  19. </html>
  20. <!--get提交数据的特点:1.数据的格式 key=value&key1=value1&key2=value2....
  21. 2.数据内容会显示在地址栏中
  22. 3.地址栏中的数据是长度有限的 ie浏览器规定不超过1024
  23. 4.get是默认的方式
  24. 5.get提交方式不太安全
  25. -->
  26. <!--注意:用什么样的方式提交,就要用什么样的方式接受-->
  1. <?php
  2. //后台程序如何得到前端提交的数据
  3. // $_GET用来接收前端提交过来的数据
  4. var_dump($_GET);
  5. ?>

2.post方式

  1. <!DOCTYPE html>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>Document</title>
  6. </head>
  7. <body>
  8. <!--
  9. 1.在html里 定义数据提交给哪个应用程序
  10. 2.在html里 设置数据提交的方式
  11. 3.在html里 设置input的name属性
  12. -->
  13. <formaction="form-post.php"method="post">
  14. <inputtype="text"name="username"id="user">
  15. <inputtype="password"name="password"id="pass">
  16. <inputtype="submit"value="提交">
  17. </form>
  18. </body>
  19. </html>
  20. <!--post方式的特点
  21. 1.提交数据不会显示到地址栏
  22. 2.数据提交格式是key=value&key1=value1&key2=value2....
  23. 3.数据可以无限大(理论上)
  24. 4.post提交方式相对安全
  25. -->
  1. <?php
  2. // 1.接受前端传过来的数据
  3. // 2.返回结果
  4. var_dump($_POST);
  5. ?>
 

十三、HTML和PHP的混写方式

  1. <?php
  2. // html和php混合写
  3. // index.html ->index.php
  4. //注意 1.php嵌入html 需要写成php格式的文件
  5. //2.php代码要写在<?php代码?>
  6. //不必把所有的逻辑和数据写在同一标签中
  7. $arr=array('www.baidu.com','www.jd.com','www.taobao.com')
  8. ?>
  9. <!DOCTYPE html>
  10. <htmllang="en">
  11. <head>
  12. <metacharset="UTF-8">
  13. <title>Document</title>
  14. </head>
  15. <body>
  16. <h1>hello</h1>
  17. <?php
  18. for($i=0;$i<count($arr);$i++){
  19. // 把网址通过php代码输出成a链接
  20. echo '<a href="'.$arr[$i].'">链接</a><br>';
  21. }
  22. ?>
  23. </body>
  24. </html>
 

01HTTP服务&AJAX编程的更多相关文章

  1. http服务&ajax编程

    http服务&ajax编程 1.服务器 前言:通俗的讲,能够提供某种服务的机器(计算机)称为服务器 1.1.服务器类型 按照不同的划分标准,服务可划分为以下类型: 按服务类型可分为:文件服务器 ...

  2. HTTP服务&Ajax编程知识点导图

  3. AJAX编程-封装ajax工具函数

    即 Asynchronous [e'sɪŋkrənəs] Javascript And XML,AJAX 不是一门的新的语言,而是对现有技术的综合利用.本质是在HTTP协议的基础上以异步的方式与服务器 ...

  4. 【WCF--初入江湖】12 WCF与Ajax编程

    12 WCF与Ajax编程 Ajax Ajax基本原理 AJAX技术的本质原理就是:使用 JavaScript 的 XMLHttpRequest 对象来直接与服务器进行通信. 通过这个对象,JavaS ...

  5. Ajax编程(HTTP请求与响应及API)详解

    AJAX编程 即 Asynchronous [e'sɪŋkrənəs] Javascript And XML, AJAX 不是一门的新的语言,而是对现有技术的综合利用. 本质是在HTTP协议的基础上以 ...

  6. Linux多线程服务端编程一些总结

    能接触这本书是因为上一个项目是用c++开发基于Linux的消息服务器,公司没有使用第三方的网络库,卷起袖子就开撸了.个人因为从业经验较短,主 要负责的是业务方面的编码.本着兴趣自己找了这本书.拿到书就 ...

  7. 《Linux 多线程服务端编程:使用 muduo C++ 网络库》电子版上市

    <Linux 多线程服务端编程:使用 muduo C++ 网络库> 电子版已在京东和亚马逊上市销售. 京东购买地址:http://e.jd.com/30149978.html 亚马逊Kin ...

  8. 《Linux多线程服务端编程:使用muduo C++网络库》上市半年重印两次,总印数达到了9000册

    <Linux多线程服务端编程:使用muduo C++网络库>这本书自今年一月上市以来,半年之内已经重印两次(加上首印,一共是三次印刷),总印数达到了9000册,这在技术书里已经算是相当不错 ...

  9. Ajax编程中,经常要能动态的改变界面元素的样式

    在Ajax编程中,经常要能动态的改变界面元素的样式,可以通过对象的style属性来改变,比如要改变背景色为红色,可以这样写:element.style.backgroundColor=”#ff0000 ...

随机推荐

  1. symfony2取得web目录绝对路径、相对路径、网址的函数是什么

    对于你的需求,Symfony2通过DIC提供了kernel服务,以及request(请求)的封装. 在controller里(在其他地方你可以自行注入kernel,这个服务是HttpKernel库里的 ...

  2. net reactor加密源码保软件安全-net reactor使用教程

    上一次介绍用 Xenocode Postbuild for .NET 混淆加密源代码确保软件安全,本篇将讨论用 Eziriz .NET Reactor 混淆加密软件源代码,为从未用过该软件加密的用户分 ...

  3. json在项目中的应用大总结

    一.摘要 刚开始接触json的时候,那时候还不太清楚json到底是个什么东西,然后就在项目中使用了它.因为没有搞明白json的本质,所以刚开始使用json的时候走了不少弯路.这次总结一些json的知识 ...

  4. Troubleshooting a node by using the netapp SP

    Troubleshooting a node by using the SP When you encounter a problem with a node, you can use the SP ...

  5. 黄聪:CamtasiaStudio如何导出视频上传优酷实现高清

  6. MVC4 +EasyUI Tabs 使用

    Tabs 右键菜单功能实现 前端 <div id="tabs" class="easyui-tabs" fit="true" bord ...

  7. OAF_开发系列01_实现OAF资料主从关系Master-Detail联动(案例)

    2014-06-02 Created By BaoXinjian

  8. 51nod 1237 最大公约数之和 V3

    求∑1<=i<=n∑1<=j<=ngcd(i,j) % P P = 10^9 + 7 2 <= n <= 10^10 这道题,明显就是杜教筛 推一下公式: 利用∑d ...

  9. java安全沙箱(一)之ClassLoader双亲委派机制

    java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别是: 类加载体系 .class文件检验器 内置于Java虚拟机(及语言)的安全特性 安全管理器及J ...

  10. 自己写的基于bootstrap风格的弹框插件

    自己写的一款基于bootstrap风格的弹框插件,暂时只有确认框.提示框.后续功能扩展.bug修改再更新. ;(function($){ //默认参数 var PARAMS; var DEFAULTP ...