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. 支持无限精度无限大数的类BigNumber实现

    介绍 本篇是MathAssist的第二篇,在前言中粗略地展示了MathAssist的“计算和证明”能力,本篇开始将详细介绍其实现原理. 从计算开始说起,要实现任意大数的计算器首先得有一个类支持大数运算 ...

  2. 阿里云的9折推荐码 8DIER4

    推荐码: 8DIER4 我有一个阿里云9折推荐码:8DIER4,分享给你,第一次购买云服务器或云数据库可享受原价9折优惠,还可多人使用,拿走不谢. 阿里云地址:http://www.aliyun.co ...

  3. 为docker配置固定ip

    docker默认使用bridge模式,通过网桥连接到宿主机,而容器内部的ip则从网桥所在的ip段取未用的ip.这样做一个不方便的地方在于容器内部的ip不是固定的,想要连接容器时只能通过映射到宿主机的端 ...

  4. CSS3 pointer-events属性

    在某个项目中,很多元素需要定位在一个地图层上面,这里就要用到很多绝对定位或者相对定位的元素,但是这样的话,这些浮在上面的div或者其它元素一般都会给个宽高,或者relative的元素可以不给宽高,这个 ...

  5. Html5上传后有所见图片效果前端代码实现

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 如何用 .Net 开发

    1. 使用最新的技术() 2. 模块拆分,(保持单一,不要把所有的功能都在一起) 3.使用轻量级的外部框架 : :TinyMapper MVC6

  7. Netty的TCP粘包/拆包(源码二)

    假设客户端分别发送了两个数据包D1和D2给服务器,由于服务器端一次读取到的字节数是不确定的,所以可能发生四种情况: 1.服务端分两次读取到了两个独立的数据包,分别是D1和D2,没有粘包和拆包. 2.服 ...

  8. 菜单栏被flex页面遮挡解决办法

  9. 禁用Windows窗体的关闭按钮

    1. protected override void OnFormClosing(FormClosingEventArgs e) { e.Cancel = true; base.OnFormClosi ...

  10. 获取layer.open弹出层的返回值

    正在开发的车联网项目用到了layer API.当我在开发“新建电子围栏”的时候需要弹出地图,用户在地图中画一个区域,最后将这个弹出层的数据返回给原页面.下面是我的实现过:程: 触发弹出层的代码: la ...