一、概念
Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML)是利用JavaScript脚本与XML数据实现客户端与服务器端进行异步通信的一种方法。
-
同步:当一个任务A进行中不能开启其它新任务(其它任务只能等待),必须等A结束后其它的任务可以运行(霸道)
生活示例:打电话 -
异步: 当一个任务A进行中能开启其它新任务,不需要等待
生活示例:微信
Ajax不是javascript,ajax是基于javascript的一种用于创建快速动态网页的技术。
Ajax的组成
- 基于标准的HTML结构与CSS样式
- 通过DOM实现动态显示和交互
- 通过XML进行数据交换和处理
- 使用XMLHttpRequest插件进行异步通信
二、 浏览器开发工具Network
- NetWork: 网络 网络控制面板,抓取网络中传递所有数据
- [*]Disable cache 禁用缓存,希望网络中每一次数据最新
- [] 红点按钮 记录按钮 如果灰色再次点击红
- All 所有 抓取网络中所有类型数据
打开一个reg.html:
- Name: reg.html #获取服务器资源
- Status: 200 #响应状态码 200 响应成功
- Type:document #文档 此次响应数据html网页
- Size:343B #文档大小
- Time:2ms #响应给你网页一共花 2ms
三、HTTP头部信息
HTTP(超文本传输协议)是一种应用层协议,负责超文本的传输。
HTTP分为:请求Request和响应Response
3.1 请求Request
HTTP请求信息三个部分:
- 请求行
- 消息报头(消息报头后是一个空行)
- 请求正文(可选):如果客户端发送POST或者PUT请求,才会有请求主体
<request-line> //请求行
<headers> //消息报头
<blank line> //空行
[<request-body>] //请求正文
请求行
Method Requst-URI HTTP-Version CRLF
- method:请求方法,大写形式,如POST、GET
- Request-URI:表示统一资源标识符
- HTTP-Version:表示请求的HTTP协议版本
HTTP/1.1 现在浏览器与服务器使用HTTP协议版本 - CRLF:回车和换行
示例一:附带参数的GET请求
//GET请求,url:/bbs 查询字符串:/?user=css8%20跟在url后 HTTP是1.1版本
GET /bbs/?user=css8%20 HTTP/1.1 //请求行
//消息报头 key:value
HOST:www.mysite.cn //host:请求的域名
User-AGENTT:Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.8)
Gecko/2017032609 Firefox/13.0.8 //浏览器自我介绍
Accept-Language: zh-CN //浏览器告诉服务器接收语言 zh简体中文 CN中国
Accept-Encoding: gzip //浏览器告诉服务器可以使用gzip压缩文件
Connection:Keep-Alive //请求服务器请打开持久连接功能(7) #提升效率
3.2 响应Response
HTTP响应三个部分:
- 状态行
- 消息报头
- 响应正文
<status-line> //状态行
<headers> //消息报头
<blank line> //空行
[<response-body>] //请求正文
状态行
HTTP-Version Status-Code Reason-Phrase CRLF
- HTTP-Version:表示请求的HTTP协议版本
- Status-Code:服务器发回的响应状态代码
- Reason-Phrase:状态代码的文本描述
- CRLF:回车和换行
常用状态代码、描述
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误,mysql停止工作
状态代码 | 状态描述 | 状态说明 |
---|---|---|
200 | ok | 客户端请求成功 |
304 | 使用缓存 | |
400 | Bad Request | 客户端请求有语法错误,不能被服务器所理解 |
401 | Unauthorized | 请求未经授权,这个状态代码必须和WWW-Authenticate报头 |
403 | Forbidden | 服务器收到请求,但拒绝提供服务 |
404 | Not Found | 请求资源不存在,例如输入了错误的URL |
500 | Internal Server Error | 服务器发生不可预期的错误 |
503 | Server Unavailable | 服务器当前不能处理客户端的请求,一段时间后,可能恢复正常 |
示例二:响应示例
示例
//状态行
//HTTP是1.1版本,200状态代码,OK是状态代码描述
HTTP/1.1 200 OK
//消息报头
Server: nginx //服务器:种类 nginx apache tomcat ....
Date: Thu, 03 Jun //服务器发送数据时间
Connection: keep-alive //开启持久连接
Content-Length:1700 //响应主体内容长度
Content-Type: text/html //响应主体内容类型 text/html 网页