-
1.HTTP是计算机通过网络进行通信的规则 2.HTTP是一种无状态的协议(不建立持久的连接,服务端不保留连接的相关信息,浏览器发出请求和服务器返回响应是一个没有记忆的过程) 3.一个完整的【HTTP请求】过程有7个步骤: 1>建立TCP连接 2>Web浏览器向Web服务器发送请求命令 3>Web浏览器发送请求头信息 4>Web服务器应答 5>Web服务器发送应答头信息 6>Web服务器向浏览器发送数据 7>Web服务器关闭TCP连接 http请求: 1.HTTP请求的方法或动作,post或get 2.正在请求的URL 3.请求头,包含一些客户端环境信息,身份验证信息等 4.请求体(请求正文),包含要发送的一些字符串信息,表单信息等等 //请求头和请求体之间有一个空行,表面请求头已经结束 GET:一般用于信息的获取,使用URL传递参数,对发送信息的数量也有限制,一般在2000字符!默认方式,一般用于查询、获取操作,不是很安全,任何人可见,信息都显示在URL中 POST:一般用于修改服务器上的资源,对所发送的数量无限制。一般用于发送表单数据,新建,修改,删除等操作,要安全一些,不在URL中显示,对其他人不显示。 【幂等】:一个操作任意多次执行所产生的影响均与一次执行的影响相同。GET请求就是一种幂等操作。 【HTTP响应】一般由3部分组成: ①一个数字或文字组成的状态码,用来显示请求是成功还是失败 ②响应头,和请求头一样包含许多有用信息,如服务器类型、日期时间、内容类型和长度等 ③响应体,即响应正文//响应头和响应体之间有空行 【HTTP状态码】 1XX:信息类,表示收到Web浏览器请求,正在进一步处理中 2XX:成功,表示用户请求被正确接收 3XX:重定向,表示请求没有成功,客户必须采取进一步动作 4XX:客户端错误,表示客户端提交的请求有错误,例如:404 NOT Found,意味着请求中所引用的文档不存在 5XX:服务器错误,表示服务器不能完成对请求的处理,如:500查看全部
-
XMLHttpRequest取得响应 * responseText:获得字符串形式的响应数据 * responseXML:获得XML形式的响应数据(比较少) * status和statusText:以数字和文本形式返回HTTP状态码 * getAllResponseHeader():获取所有的响应报头 * getResponseHeader():查询响应中的某个字段的值 readyState属性的变化代表服务器响应的变化 0:请求未初始化,open还没有调用 1:服务器连接已建立,open已经调用了 2:请求已接收,也就是接收到头信息了 3:请求处理中,也就是接收到了响应主体 4:请求已完成,且响应已就绪,也就是响应完成了 var request = new XMLHttpRequest() //建立XHR对象 request.open("GET","get.php",true); //用get方法异步打开get.php request.send(); //发送请求头信息 request.onreadystatechange=function(){ if(request.readState===4&&request.status===200){ //做一些事情 request.responseText; } } 通过onreadystatechange事件 ,对readyState属性进行监听即对服务器的响应进行监听, readyState===4响应完成; status===200,请求成功 建立异步请求的过程4个步骤: a:new一个XHR对象 b:调用open方法 c:send一些数据 d:对过程进行监听,来知道服务器是不是正确地做出了响应,接着可以做一些事情 (监听readyState,响应成功可以做一些事情,比如获取服务器响应的内容在页面上做一些呈现)查看全部
-
XMLHttpRequest发送请求: 两个方法 open(method,url,async) method:规定HTTP发送请求的方式是get还是post,不区分大小写,一般来说用大写 url:请求地址(相对地址或绝对地址) async:同步/异步(false/true),默认是异步也就是true,可以不用填写 send(string):发送到服务器(该参数可以填或者不填-----get方法不填或填null,post:一般要填) 例如: request.open("POST","create.php",true); request.setRequestHeader("Content-type","application/x-www-form-urlencoded ")//设置HTTP头信息--一定要写在open()和send()之间 request.send("name=xxxx&set=xxx");查看全部
-
PHP 服务器端实现 ·PHP脚本以<?php 开头 以?>结尾 ·PHP文件的默认文件扩展名是 .php ·PHP语句以分号结尾(;) <?php // 设置html页面的编码格式是utf-8 header("Content-Type:text/plain;charset=utf-8"); // header("Content-Type:application/json;charset=utf-8"); // header("Content-Type:text/xml;charset=utf-8"); // header("Content-Type:text/html;charset=utf-8"); // header("Content-Type:application/javascript;charset=utf-8"); //定义一个多维数组,包括员工的信息,每条员工信息为一个数组 $arr = array( array("name" => "tom", "number" => "101","sex" => "男","job" => "演员"), array("name" => "jack", "number" => "102","sex" => "男","job" => "经理"), array("name" => "mary", "number" => "103","sex" => "女","job" => "歌手"), ); //判断如果是get请求,则进行搜索;如果是post请求,则进行新建数据 // $_SERVER是一个超全局变量,在一个脚本的全部作用域中都可用,不用使用global关键字 // $_SERVER["REQUEST_METHOD"]返回访问页面使用的请求方法 if($_SERVER["REQUEST_METHOD"] == "GET"){ //请求方法为GET方式,进行搜索 search(); }else if($_SERVER["REQUEST_METHOD"] == "POST"){ //请求方式为post方式,创建数据 create(); } // 通过员工编号搜索员工 function search(){ /*查看全部
-
Ajax三步骤: Asynchronous Javascript And XML 1、运用HTML和CSS实现页面,表达信息; 2、运用XMLHttpRequest和web服务器进行数据的异步交换; 3、运用JavaScript操作DOM,实现动态局部刷新; 1.同步:就是用户填写完信息之后,全部提交给服务器,等待服务器的回应,是一次性全部的。 2.异步:当用户填写完一条信息之后,这条信息会自动向服务器提交,然后服务器响应客户端,在此过程中,用户依然在填写表格的信息,即向服务器请求多次,节省了用户的时间,提高了用户的体验。 3.XMLhttpRequest对象来实现这一功能,也需要javascript来操作DOM实现局部的信息更新。查看全部
-
跨域: Javascript出于安全方面的考虑,不允许跨域调用其他页面的对象。什么是跨域呢?简单地理解就是因为javascript同源策略的限制,a.com域名下的js无法操作b.com或是c.a.com域名下的对象。 跨域处理,三种方法: 1、处理跨域方法一 代理 通过在同域名下的web服务器端创建一个代理: 北京服务器(域名:www.beijing.com) 上海服务器(域名:www.shanghai.com) 比如在北京的web服务器的后台(www.beijing.com/proxy-shanghaiservice.php)来调用上海服务器(www.shanghai.com/services.php)的服务,然后再把访问结果返回给前端,这样前端调用北京同域名的服务就和调用上海的服务效果相同了。 2、处理跨域方式二——JSONP(只支持GET请求): JSONP可用于解决主流浏览器的跨域数据访问的问题。 在www.aaa.com页面中: <script> function jsonp(json){ alert(json["name"]); } </script> <script src="http;//www.bbb.com/jsonp.js"></script> 在www.bbb.com页面中: jsonp({'name':'xx','age':24}) 3、处理跨域的方法三——XHR2: 1、HTML5提供的XMLHttpRequest Level2已经实现了跨域访问以及其他的一些新功能 2.IE10以下的版本都不支持 3.在服务器端 header('Access-Control-Allow-Origin:*'); header('Access-Control-Allow-Methods:POST,GET');查看全部
-
跨域: Javascript出于安全方面的考虑,不允许跨域调用其他页面的对象。什么是跨域呢?简单地理解就是因为javascript同源策略的限制,a.com域名下的js无法操作b.com或是c.a.com域名下的对象。 跨域处理,三种方法: 1、处理跨域方法一 代理 通过在同域名下的web服务器端创建一个代理: 北京服务器(域名:www.beijing.com) 上海服务器(域名:www.shanghai.com) 比如在北京的web服务器的后台(www.beijing.com/proxy-shanghaiservice.php)来调用上海服务器(www.shanghai.com/services.php)的服务,然后再把访问结果返回给前端,这样前端调用北京同域名的服务就和调用上海的服务效果相同了。 2、处理跨域方式二——JSONP(只支持GET请求): JSONP可用于解决主流浏览器的跨域数据访问的问题。 在www.aaa.com页面中: <script> function jsonp(json){ alert(json["name"]); } </script> <script src="http;//www.bbb.com/jsonp.js"></script> 在www.bbb.com页面中: jsonp({'name':'xx','age':24}) 3、处理跨域的方法三——XHR2: 1、HTML5提供的XMLHttpRequest Level2已经实现了跨域访问以及其他的一些新功能 2.IE10以下的版本都不支持 3.在服务器端 header('Access-Control-Allow-Origin:*'); header('Access-Control-Allow-Methods:POST,GET');查看全部
-
核心是:创建XHR对象--并发送异步请求--接着监听服务器的响应结果并呈现在页面上 <script> document,getElementById("search").onclick = function(){ //发送Ajax查询请求并处理 var request = new XMLHttpRequest(); request.open("GET","service.php?number="+document.getElementById("keyword").value); request.send(); //监听事件 request.onreadystatechange = function(){ if(request.readyState===4 && request.status===200){ document.getElementById("searchResult").innerHTML=request.responseText; }else{ alert("发生错误:"+request.status); } } 下面的POST请求方式,则: request.open("POST","service.php"); //需将post请求提交的数据拼成URL参数 var data="name="+document.getElementById("staffName").value+"&number="+document.getElementById("staffNumber").value+"&sex="+document.getElemntById("staffSex").value+"&job="+document.getElemntById("staffJob").value; request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//很重要 request.send(data); ```` } } </script> 切记不要忘了在open和send之间设置 request.setRequestHeader("Content-Type","application/x-www-form-urlencode");查看全部
-
1、json解析的方法有两种:eval()和parse()方法 eval() 较危险,不光解析了字符串,还解析了js方法,无论何时用eval()都是非常危险的。-----不建议使用 JSON.parse()较好,会解析出错误。 //例子:首先定义了JSON字符串jsondata eval()方法: var jsondata='{"staff":[{"name":"洪七","age":70},{"name":"郭靖","age":35},{"name":"黄蓉","age":30}]}'; var jsonobj=veal('('+jsondata+')'); alert(jsonobj.staff[0].name); parse()方法: var jsondata='{"staff":[{"name":"洪七","age":70},{"name":"郭靖","age":35},{"name":"黄蓉","age":30}]}'; var jsonobj=JSON.parse(jsondata); alert(jsonobj.staff[0].name); 都可以,若把age后的70改成alert(123);若用eval()方法,发现页面是先弹出123,再弹出洪七;也就是说用eval不仅解析了字符串,还执行了JS里的方法 用parse()解析字符串,发现会抛出一个错误。 这说明用eval()不会看json是否合法,eval非常危险。所以尽量使用JSON.parse方法,来解析json里的字符串,而且还可以解析出json里的一些错误。 2、json校验工具jsonlint 3、把json格式化,地址:jsonlint.com查看全部
-
PHP是一种创建动态交互性站点的服务端脚本语言。开源,免费。 开发实例:WordPress、Facebook。入门简单。 PHP能生成动态页面内容, 创建、打开、读取、写入、删除以及关闭服务器上的文件, 接收表单数据, 发送并取回cookies, 添加,删除,修改数据库中的数据, 限制用户访问网站中的某些页面,解密、加密等等。 PHP兼容几乎所有WEB服务器,支持几乎所有数据库 运行PHP XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建 XAMPP 软件站集成软件包。这个软件包原来的名字是 LAMPP,最新的几个版本就改名为 XAMPP 了。 它可以在Windows、Linux、Solaris、Mac OS X 等多种操作系统下安装使用,支持多语言:英文、简体中文、繁体中文、韩文、俄文、日文等。 https://www.apachefriends.org/download.html 在Dreamweaver中配置web服务器用于本地测试查看全部
-
域名地址的组成: 1、完整的url:http://www.imooc.com:8080/video.php?id=001#mediaid=6238 2、协议(protocol):http:// 3、主机(host):www.imooc.com:8080 4、主机名/域名(hostname):www.imooc.com 子域名:www 主域名:imooc.com 5、端口(port):8080 6、请求路径(pathname):video.php 7、请求参数(search):id=001 8、哈希码(hash):#mediaid=6238 【同源策略:两者拥有相同的协议、域名和端口时,就属于同一个源(origin)(或者说同一个域);XHR请求不能跨域访问和调用。】 跨域:不同域之间相互请求资源 javaScript处于安全方面的考虑,不允许跨域调用其他页面的对象。什么是跨域呢,简单地理解就是因为javaScript同源策略的限制,a.com域名下的js无法操作b.com或是c.a.com域名下的对象 事实上HTTP和HTTPS两个协议的url看上去都可以省略端口号,但是他们访问的默认端口不同 HTTP默认访问80端口,HTTPS默认访问443端口,所以http访问https肯定是跨域 主域名: abc.com 主域名可以有如下的子域名: www.abc.com bbs.abc.com beijing.bbs.abc.com haidian.beijing.bbs.abc.com 处理跨域方法1--代理 通过在同域名的web服务器端创建一个代理 北京服务器(域名:www.beijing.com) 上海服务器(域名:www.shanghai.com) 比如在北京的web服务器的后台(www.beijing.com/proxy-shanghaiservice.php)来调用上海服务器(www.shaghai.com/service.php)的服务,然后再把响应结果返回给前端,这样前端调用北京同域名的服务就和调用上海的服务效果相同了。查看全部
-
出于安全考虑,浏览器都有同源策略。即相同domain的页面运行在一个沙箱(sandbox)中,与其他domain的沙箱隔离,不能跨越domain直接访问其他domain下的资源。 但HTML中有几个标签可以忽略同源限制去请求其他domain下的资源,比如<img> 和<script>等。这里主要说<script src="url">,当浏览器解析到<script>标签,就会发起一个get请求,请求的URL即为scr所指定的url。这就相当于跨域访问了一个资源。 比如运行一下代码: script = document.createElement('script'); script.type = 'text/javascript'; script.src = 'http://www.someWebApiServer.com/some-data'; 可能得到的是一个script元素,元素的innerHTML是请求返回的对象: <script> {['some string 1', 'some data', 'whatever data']} </script> 我们已经得到了想要的内容,但解析它并不方便。如果使用了JSONP是什么样的呢: script = document.createElement('script'); script.type = 'text/javascript'; script.src = 'http://www.someWebApiServer.com/some-data?callback=my_callback'; 返回的结果是: my_callback({['some string 1', 'some data', 'whatever data']});可以看到,这里的返回结果是直接执行了一个函数my_callback(...),实参就是我们需要的数据 那么只要在代码里实现my_callback 函数,就可以做任何想做的事了 <html> ... <script> function my_callback(data){alert(data.name etc.)} </script> ... </html><script>查看全部
-
1.HTTP是计算机通过网络进行通信的规则 2.HTTP是一种无状态的协议(不建立持久的连接,服务端不保留连接的相关信息,浏览器发出请求和服务器返回响应是一个没有记忆的过程) 3.一个完整的【HTTP请求】过程有7个步骤: 1>建立TCP连接 2>Web浏览器向Web服务器发送请求命令 3>Web浏览器发送请求头信息 4>Web服务器应答 5>Web服务器发送应答头信息 6>Web服务器向浏览器发送数据 7>Web服务器关闭TCP连接 http请求: 1.HTTP请求的方法或动作,post或get 2.正在请求的URL 3.请求头,包含一些客户端环境信息,身份验证信息等 4.请求体(请求正文),包含要发送的一些字符串信息,表单信息等等 //请求头和请求体之间有一个空行,表面请求头已经结束 GET:一般用于信息的获取,使用URL传递参数,对发送信息的数量也有限制,一般在2000字符!默认方式,一般用于查询、获取操作,不是很安全,任何人可见,信息都显示在URL中 POST:一般用于修改服务器上的资源,对所发送的数量无限制。一般用于发送表单数据,新建,修改,删除等操作,要安全一些,不在URL中显示,对其他人不显示。 【幂等】:一个操作任意多次执行所产生的影响均与一次执行的影响相同。GET请求就是一种幂等操作。 【HTTP响应】一般由3部分组成: ①一个数字或文字组成的状态码,用来显示请求是成功还是失败 ②响应头,和请求头一样包含许多有用信息,如服务器类型、日期时间、内容类型和长度等 ③响应体,即响应正文//响应头和响应体之间有空行 【HTTP状态码】 1XX:信息类,表示收到Web浏览器请求,正在进一步处理中 2XX:成功,表示用户请求被正确接收 3XX:重定向,表示请求没有成功,客户必须采取进一步动作 4XX:客户端错误,表示客户端提交的请求有错误,例如:404 NOT Found,意味着请求中所引用的文档不存在 5XX:服务器错误,表示服务器不能完成对请求的处理,如:500查看全部
-
AJAX:Asynchronous JavaScript and XML (异步的 JavaScript 和 XML) Ajax 不是某种编程语言,是一种在无需重新加载整个网页的情况下能够更新部分网页的技术。查看全部
-
一.JSON基本概念 1、javaScript对象表示法(javaScript object notation) 2、json是存储和交换文本信息的语法,类似xml。它使用键值对的方式来组织,易于人们阅读和编写,同时也易于机器解析和生成。 3、json是独立于语言的,也就是说不管什么语言,都可以解析json,只需要按照json的规则来就行。 4、xml也是一种传递信息的方法。 二、json和xml比较 1、json的长度和xml格式比起来很短小 2、json读写的速度更快。 3、json可以使用javaScript内建的方法直接进行解析,转换成javaScript对象,非常方便。 三、json语法规则 1、json数据的书写格式是:名称/值对。 名称/值对组合中的名称写在前面(在双引号中),值对写在后面(同样在双引号中),中间用冒号隔开,比如 "name":"郭靖"。 和javaScript对象表示法不同,javaScript对象表示法的键值不需要用引号,但是json的键值要用引号。 2、json的值可以是下面这些类型: (1)数字(整数或浮点数),如123,1.23 (2)字符串(在双引号中) (3)逻辑值(true或false) (4)数组(在方括号中) (5)对象(在花括号中) (6)null 3、json典型例子: { "staff":[ {"name":"洪七","age":70}, {"name":"郭靖","age":35} ] } 四、(外注)JSON建构于两种结构: 1、“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。 2、值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
查看全部
举报