近日翻书之后,才发现,本科的时候,只是单纯的会写代码。结合http,总结。
首先,一个http请求,包含4个部分:
1.http请求的方法或者动作
2.正在请求的url
3.请求头(可选,可能包含验证信息等)
4.请求主题(可选)
服务器返回的http请求包含3个部分:
1.状态码(用来返回成功,或者失败)
2.响应头
3.返回主体
发送请求:
request.open("GET",
"xxx.txt");
get为请求方法,常用的还有post。
get和post的区别:
根据http规范,get用于获取信息,应该是幂等的。
post用于传输信息,有可能改变服务器端的数据。(根本区别)
区别表现为:
1.get提交的数据有大小限制。 post没有。
(get在不同浏览器下的大小限制不同,一般不超过2k
ie8 4076
firefox 7530
chrome 7675
)2.get使用缓存,post不使用。
3.post比get安全性更高。(因为get是通过url请求数据,可能会附带账号密码。导致:1.账号密码被浏览器缓存。2.其他用户 查看浏览记录3.csrf攻击 即不关闭网站a的情况下 网站b通过)
指定请求头和请求主体:
request.setRequestHeader("Content-Type",
"text/plain;charset=UTF-8");
request.send(xxx); //发送xxx到服务器,请求主体为纯文本。
完整的代码:
function getText(url,callback){
var request = new XMLHttpRequst();
request.open("GET",url);
request.onreadystatechange = function(){
if(request.readyState === 4 && request.staus === 200){
var type = requst.getResponseHeader("Content-type");
if(type.match(/^text/))
callback(request.responseText);
}
};
request.send(null);
}