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. [Maven] - 安装与Eclipse搭建

    Maven的具体参考书可以看:<Maven实战> 下载maven可以到:http://maven.apache.org/ Maven的eclipse基本使用可以在这里看到:http://w ...

  2. Delphi_OD_代码_调试_Delphi反调试技术(以OD为例附核心原代码) (转)

    1.程序窗口[chuang kou]句柄[ju bing]检测原理:用FindWindow函数[han shu]查找[cha zhao]具有相同窗口[chuang kou]类名和标题的窗口[chuan ...

  3. [platform]Device和Driver注册顺序

    1. 设备和驱动注册,无论谁先谁后,都可以通过查询总线进行匹配 设备挂接到总线上时,与总线上的所有驱动进行匹配(用bus_type.match进行匹配),如果匹配成功,则调用bus_type.prob ...

  4. [原]CentOS 6.5 上安装 MySQL 5.6

    参考文档: http://dev.mysql.com/doc/refman/5.6/en/linux-installation-yum-repo.html 1. 下载 rpm 文件:wget http ...

  5. JS中两个感叹号!!的意义

    var foo = true; console.log(!foo); // false console.log(!!foo); // true 两个 !! 就是 非非 如果值为boolean值 两个感 ...

  6. emacs配置eslint 语法检查.找不到node解决

    使用emacs配置eslint 当调用语法检查时报错 Suspicious state from syntax checker javascript-eslint: Checker javascrip ...

  7. 关于litJson的System.InvalidCastException

    最近在做一个Unity3D的项目,用到了litJson库, 它比JavaScript里的JSON解析更加严格, 有时候解析数据的时候会出现类型不对. 比如说 {"data":12} ...

  8. 如何通过JavaScript构建Asp.net服务端控件

    摘要 虽然ASP.NET的服务器控件一直被大家所诟病,但是用户控件(ACSX)在某些场景下还是非常有用的. 在一些极特珠的情况下,我们会使用JavaScript动态的构建页面中的控件,但假设遇到了我要 ...

  9. HDNOIP201405杨辉三角

    2016.1.27 试题描述 杨辉三角是形如如下的数字三角形: 1 1    1 1   2    1 …… 现在想求出杨辉三角第N行的N个数中,有多少个数能被给定的质数p整除. 输入 一行两个空格隔 ...

  10. 初学PHP

    这东西必须得静下心来学,快是快不来的,得有一个痛苦的过程.<PHP和MySQL WEB开发>这本书很值得一看,有了坚实的基础,推荐看<深入php++面向对象.模式与实践+第三版> ...