http 协议随手记 | stylem
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "//hm.baidu.com/hm.js?57e94d016e201fba3603a8a2b0263af0";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
盒子
盒子
Posts List
这一段时间一直在看 flask,能实现一些很基本的功能,可是实在看不下去了,就想看一点关于’web 安全’ 别的知识,所以来学习 http 协议,那就学着记录着吧…
什么叫 HTTP 协议?
-协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则, 超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。
我们为什么能够看见网页?
-我们输入URL在浏览器上,浏览器给Web服务器一个request请求,Web服务器接受到这个request,会生成一个response回应给浏览器,这个时候,浏览器将response中的html解析成我们看到的网页。
我们与服务器交互有哪些方法,区别是什么?
-最常用的两个交互方法是Get方法和Post方法;
1.GET方法提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,而POST方法提交数据是看不见的,它是存放在HTP的BODY中;
2.由于URL长度的限制,所以GET提交的数据长度有限制;POST方法提交数据没有限制;
3.获取URL中GET提交的参数时,要用request.query;获取POST值用request.Form方法;
4.从安全性来说,POST较GET方法来说安全性更高;
我们访问网页会看到的数字是什么意思?
-HTTP/1.1中定义的五类状态码:
1**? 提示信息:表示请求已被接收,继续处理;
2**?(如200)成功:表示请求已被成功接收,理解;
3**? 重定向:要完成请求必须进行更进一步的处理;
4**? 客户端错误:请求有语法错误或请求无法实现;
5**? 服务器端错误:服务器未能实现合法的请求;
Close
var disqus_shortname = 'forsigner';
var disqus_url = 'http://yoursite.com/2017/11/08/http/协议随手记';
(function(){
var dsq = document.createElement('script');
dsq.type = 'text/javascript';
dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
function loadScript(url, callback) {
var script = document.createElement('script')
script.type = 'text/javascript';
if (script.readyState) { //IE
script.onreadystatechange = function() {
if (script.readyState == 'loaded' ||
script.readyState == 'complete') {
script.onreadystatechange = null;
callback();
}
};
} else { //Others
script.onload = function() {
callback();
};
}
script.src = url;
document.getElementsByTagName('head')[0].appendChild(script);
}
window.onload = function() {
loadScript('/js/bundle.js?235683', function() {
// load success
});
}