http协议

124 阅读2分钟

超文本传输协议(http)规定web浏览器如何从web服务端获取文档和向web服务器提交表单内容,以及web服务器如何响应这些请求和提交。浏览器会处理这些http,通常http并不在脚本的控制下,只是当用户点击链接、提交表单和输入url时才发生。

而ajax描述的是使用脚本操纵http的web应用架构,其中的x表示的是XMLHttpRequest,浏览器在XMLHttpRequest类上定义了它们的HTTP API,通过XMLHttpRequest发送请求

1. 使用这个HTTP API做的第一件事情就是实例化XMLHttpRequest对象:

var request = new XMLHttpRequest();

拓展:在IE7之前并没有这个XMLHttpRequest构造函数,而是个ActiveXObject对象。

2. 一个HTTP请求由四部分组成
  • HTTP请求方法或者动作
  • 正在请求的URL
  • 请求头
  • 请求主体
2.1. 在创建完XMLHttpRequest对象后,发起HTTP请求的下一步就是调用XMLHttpRequest对象的open()方法去指定这个请求的两个必需部分:方法和URL

request.open("GET","data.csv**");

第一个参数GET为HTTP方法或者动作,第二个参数为URL。

2.2. 如果有请求头的话,请求进程的下一个步骤就是设置它:

request.setRequestHeader("content-Type","text/plain"); 一般MIME请求头的类型有:

  • text/hml:html格式

  • text/plain:纯文本格式

  • text/xml:XML格式

  • image/gif:gif图片格式

  • image/jpeg:jpg图片格式

  • image/png:png图片格式

  • application/xml:XML数据格式

  • application/json:json格式

  • application/octet-stream:二进制流数据

  • application/x-www-form-urlencoded:form表单数据以key/value格式发到服务器。

2.3. 使用XMLHttpRequest发起HTTP请求的最后一步就是选定可选的请求主体并向服务器发送它,使用send()方法:
request.send(null);
3. 服务器返回的HTTP响应包含3部分
  • 一个数字和文字组成的状态码,用来显示请求的成功或者失败
  • 一个响应头集合
  • 响应主体

一个完整的HTTP响应应由状态码、响应头集合和响应主体组成,这些都可以通过XMLHttpRequest对象的属性和方法使用。

status和statusText属性以文字和文本的形式返回HTTP状态码,例如200表示请求成功,404表示url不能匹配服务器上的任何资源

使用getRequestHeaders()和getAllRequestHeaders()能查询响应头

响应主题可以从requestText属性中得到文本形式。

在响应过程中会有一个readystatechange事件,里面有readyState属性,UNSET(0,尚未调用)、OPENDED(1,已调用)、HEADERS—RECEIVED(2,接到头信息)、LOADING(3,接收到响应主体)、DONE(4,响应完成)