http协议和ajax,HTTP与Ajax 初体验

重识HTTP

HTTP请求过程

1.建立TCP连接

2.web浏览器向服务器发送请求命令

3.web浏览器发送请求头信息

4.web浏览器发送请求体

5.web服务器应答

6.web服务器发送应答头信息

7.web服务器向浏览器发送数据

8.web服务器关闭TCP连接

HTTP请求

一个HTTP请求一般有四部分组成

1.请求的方法或动作,比如是GET还是POST请求

2.正在请求的URL

3.请求头,包含一些客户端环境信息,身份验证信息

4.请求体即请求的正文,包含客户提交的字符串信息,表单信息等

AAffA0nNPuCLAAAAAElFTkSuQmCC

HTTP响应

一个HTTP响应一般有三部分组成

1.一个数字或文字组成的状态码

2.响应头,包含服务器的环境信息例如服务器类型,日期时间,内容类型和长度等

3.响应体

AAffA0nNPuCLAAAAAElFTkSuQmCC

补充:状态码

HTTP状态码由三位数字构成,其中首位数字定义了状态码的类型

1xx:信息类,表示收到web浏览器的请求,正在进一步处理中

2xx:成功,表示请求被正确接收,理解和处理:200 OK

3xx:重定向,表示请求没有成功,客户必须采取进一步的动作

4xx:客户端错误,表示客户端提交的请求有错误,例如404 NOT Found

5xx:服务器错误,表示服务器不能完成对请求的处理。

Ajax初体验

ajax简介

拙见:Ajax技术就好像把网页分割成若干个小部分,每个小部分都可以独自的通过JavaScript与服务器进行联系,刷新各自的数据。而不像原来没有ajax时只是想要网页中的刷新一部分,但不得不刷新整个网页浪费了资源。

异步就是每个小部分都在干自己的事。

同步就是大家捆绑在一起,你干什么我也必须干什么,你刷新我也必须刷新。

大牛:

异步的JavaScript和XML(Asynchronous JavaScript and XML)

使用ajax技术的网页,可以局部异步的更新数据。

实现Ajax

拙见:所说的每个小部分便是XMLHttpRequest对象

运用XMLHttpRequest和web服务器进行数据的异步交换

运用JavaScript操作DOM,实现动态局部刷新

创建XMLHttpRequest对象

XMLHttpRequest对象也称XHR

js:

var request

if(window.XMLHttpRequest){

request = new XMLHttpRequest();

//IE7+,Firefox,Chrome,Opera,Safari

}else{

request = new ActiveXObject("Microsoft.XMLHTTP")

//IE6,IE5

}

发送XHR对象

设置初始信息

open(method,url,async)

method : 请求的方式是GET还是POST

url : 请求的地址

async : 是否采用异步传输

发送数据HTTP请求

send(string)

string : POST请求时向服务器发送的数据,GET请求时为空

注意

在发送POST请求时,要设置请求的头信息

实例

GET请求

request.open("GET","oneurl.php?fname=Bill&lname=Gates",true)

request.send()

POST请求

request.open("POST","oneurl.php",true)

//设置HTTP请求头信息时,第一个字符串参数为名称,

第二个字符串参数为值

request.setRequestHeader("Content-type",

"application/x-www-form-urlencoded")

request.send("name=二狗&sex=男")

监听XHR发送情况

数据的发送过程是不可以看到的,但是可以通过

XHR对象的readyState属性和onreadystatechange事件

来实时监听数据的发送情况。

readyState 属性

0: 请求尚未初始化,open还没有调用

1: 服务器连接已经建立,send方法已经调用,正在发送请求

2: send方法已经完成,且受到全部的响应内容

3: 正在解析从服务端的返回数据

4: 解析数据完成,可以再客户端调用该数据

onreadystatechange 事件

每次状态码的改变都会触发该事件

取得响应数据

当readyState==4时即客户端解析数据完毕,

这时调用response的各种属性和方法可以方便查看各种数据

responseText : 获得字符串形式的响应数据

reponseXML : 获得XML形式的响应数据

status和statusText : 以数字和文本的形式返回HTTP状态码

getResponseHeader('name') : 查询响应中的某一个字段的值

jQuery实现Ajax

案例分析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值