HTTP协议
HTTP协议(超文本传输协议,HTTP 是一个用在计算机世界里的协议。它使用计算机能够理解的语言确立了一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式。)
网址组成(主要分为四个部分)
协议——HTTP、HTTPS(HTTPS是加密的HTTP)
主机——baidu.com\zhihu.com\之类的网站
端口——HTTP协议默认的是80,因此一般不需要填写
路径——HTTP://www.zhihu.com/question/6321736251(/后面的都是路径)
Ajax是一种用于创建快速动态网页的技术,它可以在不完全加载页面的情况下js动态来抓取内容构建页面。
请求和返回是一样的数据格式,分为4部分:
1,请求行或者响应行
2,Header(请求的 Header 中 Host 字段是必须的,其他都是可选)
3,\r\n\r\n(连续两个换行回车符,用来分隔Header和Body)
4,Body(可选)
操作方法:创建Ajax对象
设置请求和请求地址
注册响应函数
发送登录数据
//获取登录页面 //创建AJAX对象 var r = new XMLHttpRequest() //设置请求方法和请求地址 r.open('GET', '/login', true) //注册响应函数 r.onreadystatechange = function() { if(r.readyState == 4) { console.log('请求成功', r.responseTEXT.length) } } //发送请求 r.send()
封装成以下函数
//发送登陆数据
//创建Ajax对象 var Ajax = function(method, path, data, reseponseCallback) { var r = new XMLHttpRequest() //设置请求和请求地址 r.open(method, path, true) r.setRequestHeader('Content-Type', 'application/json') //注册响应函数 r.onreadystatechange = function() { console.log('r', r) if(r.readyState === 4) { reseponseCallback(r) } } //发送请求 r.send(data) } Ajax('POST', path, data, function(r) { var t = JSON.parse(r.response) console.log(t) })
- readystate 变量,此属性只读,状态长度为4的整数表示
0(未初始化)对象已建立,但是尚未发送请求(尚未调用open方法)
1(初始化)已调用send()方法,正在发送请求
2(发送数据)send方法调用完成,但是当前的状态码及HTTP头未知
3(数据传输中)已接收部分数据但是响应及HTTP头不全,这是通过responseBody和responseText获取部分数据会出现错误
4(完成)数据接收完毕,此时可以通过responseBody和responseText获取完整回应数据