AJAX“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。

  • AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)
  • AJAX 是一种用于创建快速动态网页的技术
  • 通过在后台与服务器进行少量数据交换
  • AJAX可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
  • 传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。

什么是AJAX?

AJAX只是一个前端技术,不是一个新的语言。它是利用浏览器提供操作HTTP的接口(XMLHttpRequest或者ActiveXObject)来操作HTTP以达到异步的效果。

网页渲染的同步与异步的区别

  • 同步:当你在浏览器的地址栏里输入百度网址并访问的时候,浏览器都是创建新的tabpage、新的内存块、加载网页的全部资源、渲染加载过来的资源。这些那都是从头开始的,就想上帝创作世界一样。只要与后台交互数据,那怕数据只有那么一丢丢,也得重新创造一次世界,如此反复。浏览器自己控制HTTP操作
  • 异步:不需要重新创造一次世界,用之前已经存在的世界来达到目的。与后台交互数据不需要重新来渲染页面.自己来控制HTTP操作。

HTTP介绍

HTTP (HyperText Transfer Protocol) 超文本传输协议 在当前web环境中走的流量大部分都是走的HTTP流量,也就是说你在浏览器中访问任何东西,那怕是一张小图片也是HTTP来给你当搬运工显示在你面前的。而且AJAX就是基于HTTP来传输数据的。所以要想精通AJAX,适当的了解并掌握HTTP是十分必要的。

web客户端和服务器

web内容都是存储在web服务器上的,web服务器所使用的是http协议,因此经常会被称为http服务器。这些http服务器存储量因特网中的数据,如果http客服端发出请求的话,它们会提供数据。客户端向服务器发送http请求,服务器会在http响应中会送所请求的数据。http客服端和http服务器共同构成了万维网的基本组建。可能你每天都是使用http客服端。最常见的http客户端就是浏览器。web浏览器向服务器请求http对象,并将这些对象显示在你的屏幕上。

HTTP事务

一个http事务由一条(从客户端发往服务器的)请求命令和一个(从服务器发回客户端的)响应结果组成。这种通信时通过名为HTTP message的格式化数据块进行的。

只有当请求和响应都成功时此http事务才算成功,也就是这条http才算成功。只有当其中任意一个命令(请求或者响应)失败,那么这个http就算失败。

一个http就是一个http事务,且http事务完成之后此http不可在复用。

http报文

http报文是由一行一行的简单字符串组成的。http报文都是纯文本,不是二进制代码,所以人们可以很方便地对其进行读写。

http报文分为三部分:

  • 起始行

    报文的第一行就是起始行,在请求报文中用来说明做些什么,在响应报文中说明出现了什么情况。
  • 首部字段

    起始行后面有零个或多个首部字段。每个首部字段都包含了一个名字和一个值,首部分为5种类型:

    通用首部、请求首部、响应首部、实体首部、扩展首部
  • 主体

    报文主体包含了所有类型的数据。请求主体中包含了要发送给web服务器的数据;响应主体中装载了要返回给客户端的数据。起始行和首部字段都是结构化的文本形式的,而主体可以包含任意的二进制数据。当然,主体中也可以包含文本。

HTTP 方法

http支持几种不同的请求命令,这些命令被称为http方法 每条http请求报文都包括一个方法。这个方法会告诉服务器执行什么动作(获取一个web页面、运行一个网关程序、删除一个文件)。

常见来http方法如下

  • GET 从服务器向客户端发送命名资源,主要是传给服务器一些参数来获取服务器上指定的资源。
  • POST 将客户端数据发送到一个服务器网关程序。
  • DELETE 从服务器上删除命名资源
  • HEAD 仅发送命名资源中的http首部
  • PUT 将来自客户端的数据存储到一个服务器资源中去
  • TRACE 对报文进行追踪
  • OPTIONS 决定可以从服务器上执行哪些方法

GET与POST的区别:

  • URL长度限制 浏览器对URL有大小限制,chrome 8k firefox 7k ie 2k
  • 资源大小限制:get方法限制大小,get是将数据直接拼接在URL后端query部分,而浏览器是对URL有长度限制的,所以get有大小限制。post不限制大小。因为post是将数据放到请求的主体里,而主体是不限制大小的,所以post没有大小限制。
  • 功能 get主要是用来从服务器拉取数据,而post主要是用来将数据发送到服务器。
  • 安全 get可以看到发送给服务器的数据,而post不会被看到,因为post把数据放到主体里了。

HTTP 状态码

每条http响应报文返回时都会携带一个状态码。状态码是一个三位数字的代码,告知客户端请求是否成功,或者是否需要采取其他操作。

几种常见的状态码:

  • 200 OK 文档正确返回
  • 202 put和delete请求成功返回
  • 301 Redirect 永久重定向。一直从其他地方去获取资源
  • 302 Redirect 临时重定向。临时到其他地方去获取资源
  • 303 see other、307 Temporary Redirect 将客服端重定向到一个负载不大的服务器上,用于负载均衡和服务器失联
  • 404 Not Found 无法找到这个资源
  • 500 Internal Server Error 服务器错误

伴随着每个数字状态码,http还会发送一条解释性的原因短语文本。包含文本短语主要是为了进行描述,所有的处理过程使用的都是数字码。

http软件处理下列状态码和原因短语的方式是一样的:

  • 200 OK
  • 200 Document attached
  • 200 Success
  • 200 All's cool, dude

MIME Type

因特网上有数千种不同的数据类型,http仔细地给每种要通过web传输的对象都打上了名为MIME类型(MIME Type)的数据格式标签。最初设计MIME(Multipurpose Internet Mail Extension,多用途因特网邮件扩展) 是为了解决在不同的电子邮件系统之间搬移报文时存在的问题。MIME在电子邮件系统中工作得非常好,因此HTTP也采纳了它,用它来描述并标记多媒体内容。

web服务器会为所有的http对象数据附加一个MIME类型。当web浏览器从服务器中取回一个对象时,回去查看相关的MIME类型,看看它是否知道应该如何处理这个对象。大多数浏览器都可以处理数百种常见的对象类型。

MIME Type就是告诉浏览器用什么方式来处理这个数据。

MIME类型是一种文本标记,表示一种主要的对象类型和一个特定的子类型,中间由一条斜杠来分隔。

  • html格式的文本文档由text/html类型来标记
  • 普通的ASCII文本文档由text/plain类型来标记
  • JPEG格式的图片为image/jpeg类型
  • GIF格式的图片为image/gif类型
  • 表单提交由application/x-www-form-urlencoded类型来标记

MIME类型在HTTP协议中的表现为Request Header或者Response Header中的Content-Type

URI、URL、URN

URI : 每个web服务器资源都有一个名字,这样客户端就可以说明他们感兴趣的资源是什么了。服务器资源名被称为统一资源标识符(Uniform Resource Identifier,URI) URI就像因特网上的邮政地址一样,在世界范围内唯一标识并定位信息资源。

例如 https://www.baidu.com/img/baidu_jgylogo3.gif

这是一个百度服务器上一个图片资源的URI

URL : 统一资源定位符(URL) 是资源标识符最常见的形式。URL描述了一台特定服务器上某资源的特定位置。它们可以明确说明如何从一个精确、固定的位置获取资源。

例如 :https(http协议)

AJAX相关总结的更多相关文章

  1. AJAX 相关笔记

    AJAX (Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)). 平时工作中使用ajax的频率挺高的,这里整理了一些ajax相关的小知识,后续 ...

  2. js常见知识点1.ajax相关

    一. javascript中的typeof返回哪些数据类型? 建议回复: typeof 运算符把类型信息当作字符串返回.typeof 返回值有六种可能: number, string, boolean ...

  3. Django——Ajax相关

    Ajax简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异步交互,传输的数 ...

  4. SpringMVC与ajax相关知识练习与存档

    参考文章(亲测有效): SpringMVC+ajax返回JSON串 jquery ajax例子返回值详解 AJAX $.ajax({url:路径,date:数据,}) //get请求(指定回调函数,参 ...

  5. 前端相关技术之ajax相关

    AJAX技术点 async javascript and xml:异步的js和xml,用js异步去操作xml ajax用于数据交互,不能操作DOM –节省用户操作,时间,提高用户体验,减少数据请求 – ...

  6. JQuery(三) Ajax相关

    JQuery大大简化了Ajax通用操作,开发者只需要指定请求URL,回调函数即可. 三个主要方法: $().param(obj):将obj参数(对象或数组)转化成查询字符串. {name:" ...

  7. ajax相关

    Javascript·部分: <script language="javascript" type="text/javascript" src=" ...

  8. ajax相关体会

    参考原文: 例子:http://blog.csdn.net/beijiguangyong/article/details/7725596 原理讲解:http://www.cnblogs.com/min ...

  9. Jquery第三篇【AJAX 相关的API】

    前言 前面我们已经学了讲解了Jquery的选择器,关于DOM 的API还有事件的API.本博文需要讲解Jquery对AJAX的支持- 我们在开始使用JavaScript学习AJAX的时候,创建异步对象 ...

随机推荐

  1. windows下perl的安装和脚本的运行

    参考 1.windows下perl的安装和脚本的运行: 2.fddb测试fddb的评估方法: 3.gunplot5.2.4-download: 完

  2. 【linux基础】core dump debug

    1.check core dump; ulimit -c or ulimit -a nvidia@tegra-ubuntu:~$ ulimit -a core data seg size (kbyte ...

  3. win10系统把文件夹固定到任务栏

    为某个文件夹创建快捷方式 右键该快捷方式,选择固定到开始屏幕 点击win图标进入开始屏幕,在屏幕的右侧有刚才固定的快捷方式 右键该快捷方式,选择固定到任务栏即可.

  4. 什么是PHP无限级分类

    注:兄弟连PHP项目视频18讲有详细讲解.PHP和mysql(或是各种数据库)有较深的依奈关系,比如这里就是通过数据库的设 计,id,pid(parent id),path(所有父id构成的路径,如W ...

  5. 红黑树-算法大神的博客-以及java多线程酷炫的知识

    http://www.cnblogs.com/skywang12345/p/3245399.html 解释第5条:从 ->根节点(或者任意个结点)到->所有的末端节点的路径中 ->黑 ...

  6. Patch打补丁学习笔记

    1.基本命令语法: patch [-R] {-p(n)} [--dry-run] < patch_file_name p:为path的缩写. n:指将patch文件中的path第n条’/’及其左 ...

  7. java中Thread类分析

    创建线程的方式有三种,一是创建Thread实例,二是实现Runnable接口,三是实现Callable接口,Runnable接口和Callable接口的区别是一个无返回值,一个有返回值:不管是Runn ...

  8. 【转】【iOS】动态更换App图标

    原文网址:http://www.cocoachina.com/ios/20170619/19557.html 前言 动态更换App图标这件事,在用户里总是存在需求的:有些用户喜欢“美化”自己的手机.至 ...

  9. DevExpress GridControl控件行内新增、编辑、删除添加选择框(转)

    http://blog.csdn.net/m1654399928/article/details/21951519 1.首先到GridControl控件设计里设置属性Repository    (In ...

  10. mySQL 教程 第5章 插入 更新与删除数据

    使用SQL Manager管理工具连接到schoolDB.由于三张表都设置了主键,因此,以下练习中插入的记录,主键不能重. 插入数据 1. 练习:为表的所有字段插入数据 为表中所有字段插入数据,可以不 ...