关于ajax
ajax是异步的JavaScript和XML,优点是无刷新的与后台通信并获取数据,只更改页面中需要更改的部分,而不是刷新整个页面,减少无意义的数据传输,提高了效率和用户体验。
HTTP请求过程
1、建立TCP连接 2、Web浏览器向服务器发送请求命令 3、Web浏览器发送请求头信息 4、Web服务器应答 5、Web服务器发送应答头信息 6、Web服务器想浏览器发送数据 7、Web服务器关闭TCP连接
*TCP:Transmission Control Protocol 传输控制协议
HTTP请求
GET请求:一般用于信息获取 使用url传递参数 对发送的信息的数量有限制,一般在2000字符 幂等:每次只是GET,没有修改服务器上的信息 POST请求:一般用于修改服务器上的资源 对发送的信息的数量无限制
与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。
然而,在以下情况中,请使用 POST 请求:
- 无法使用缓存文件(更新服务器上的文件或数据库)
- 向服务器发送大量数据(POST 没有数据量限制)
- 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
HTTP响应
1、数字和文字组成的状态吗,显示请求是成功还是失败。客户端不知道请求的成功 2、响应头:和请求头一样包含服务端的信息,如服务器类型,内容类型和长度 3、响应正文
HTTP状态码
1XX:信息类,表示收到Web浏览器的请求,处理中; 2XX:成功:表示用户请求被正确接收,理解和处理 200 OK 3XX: 重定向:表示请求没有成功,客户要采取进一步动作 4XX:客户端错误,表示客户端提交的请求有错误。 404 NOTFound,意味着请求中引用的文档不存在 5XX:服务器错误,表示服务器不能完成对请求的处理 500
XMLHttpRequest取得响应
responseText:获得字符串形式的响应数据 responseXML:获得XML形式的响应数据 status和statusText:以数字和文本形式返回HTTP状态码 getAllResponseHeader():获取所有的响应报头 getResponseHeader():获取响应中某个字段的值
readyState属性 0:请求未初始化,open还没有调用 1:服务器连接已建立,open已经调用了 2:请求已接收,接收到头信息了 3:请求处理中,接收到响应主体了 4:请求已完成,且响应已就绪,响应完成了
例子:
var request = new XMLHttpRequest(); request.open('GET','get.php',true); request.send(); request.onreadyState() = function() { if(request.readyState === 4 && request.status ===200){ //do sth } }