前言
这篇是我在看了《图解http》, 并查阅了关于ajax相关知识之后, 感觉有所收获, 所写。 主要叫讲述简单http认识, js如何操作。, 关于CORS跨域等问题。
一、http基础篇
简介
http(超文本传输文本协议), 用于web应用传输数据的协议, 只能由客户端发起, 由服务端响应。 具有无状态等特点。
结构
http协议的传输单位是http报文(请求报文、响应报文)。 报文的结构可分为:请求/响应行、 首部字段、实体部分。
get请求报文
GET /index.html HTTP/1.1 //请求行
Host: test.com //首部字段
get响应报文
HTTP/1.1 200 OK //响应行
Date: Tue, 10 Jul 2012 06;50:15 GMT //首部字段
Content-Length: 362 //首部字段
Content-Type: text/html //首部字段
<html> //实体
...
请求行用于说明请求方法 , 请求地址, http版本号
响应行用于说明服务器http版本号, 响应状态码, 状态码的原因短句
首部字段分为: 通用首部字段、 请求首部字段、 响应首部字段、 实体首部字段
对于实体内的内容, 可以用实体首部字段加以说明。 最常使用的是content-type: xxxx, 说明实体内容的类型。
二、javaScript操作http
浏览器中, http请求可以由浏览器中的如下内容发送:
1. 浏览器中的url地址栏
2. 页面有src属性的标签(img、script、 link等)
3. 带有action属性的form表单
4. XMLHttpRequest对象
1. XMLHttpRequest的基本用法
在这些方法中, XMLHttpRequest对象提供了接口让我们操作http.基本用法如下:
var xhr = new XMLHttpRequest();//此时readyState属性值为0
xhr.open('post', 'http://www.test.com', false)//此时readyState属性值为1
xhr.send("name=yang&psd=123")//readyState属性值为2
xhr.onreadyStatechange = function(){
if(xhr.readState === 4 && xhr.status === 200 )