betway必威-betway必威官方网站
做最好的网站

Get请求与Post请求的区别,即使用了

关于我:xiaoheike

图片 1

简单介绍还没来得及写 :) 个人主页 · 小编的篇章 · 10 ·      

图片 2

转载自

<a name="t7"></a><a target="_blank" name="t17" style="color:rgb(12,137,207)"></a>history对象

history对象保存着顾客上网的历史记录,从窗口被张开的那一刻算起。
使用Go()方法能够在客户的历史记录中随心所欲跳转,可以向后也足以向前。这一个法子接受贰个参数,表示向后或向前跳转的页面数的三个整数值。负数表示向后跳转(类似于单击浏览器的‘后退’开关),正数表示向前跳转(类似于单击浏览器的“前进”开关)

history.go(-1);//后退一页
history.go(1);//前进一页
history.go(2);//前进两页

也能够给go()方法传递叁个字符串参数,此时浏览器会跳转到历史记录中蕴藏该字符串的率先个职位–可能后退,也说不定升高,具体看这么些地点近来。假若历史记录中不含有该字符串,那么那个艺术什么也不做

history.go('wrox.com');//跳到最近的wrox.com页面

此外,还是能够运用五个简写方法back()和forward()来顶替go()。那八个办法都足以效仿浏览器的‘后退’和‘前进’开关。

history.back();//后退一页
history.forward();//前进一页

history对象还会有贰个length属性,保存着历史记录的数额。那个数据满含持有的历史记录,即怀有向后和前进的记录。

即选择了 https 也毫不通过 query strings 传敏感数据

2017/10/16 · 基本功技术 · HTTPS

本文由 伯乐在线 - xiaoheike 翻译,艾凌风 校稿。未经许可,幸免转发!
爱尔兰语出处:HttpWatch。应接参与翻译组。

劳动器端的 log 将公开记下完整 url;浏览器上的探访历史也会通晓记下完整 url;Referrer headers 里也忠实记下总体 url,然后在外人家的 GoogleAnalytics 上海展览中心示。

我们日常听到的贰个宽广难点是:“URL 中的参数是还是不是足以安枕而卧地传递到平安网址?”那个难点平日现身在客商看了 HttpWatch 捕获的 HTTPS 须要后,想领会还应该有哪个人能够观察这几个数量。

 

比如,假如在一个询问中,使用如下安全的 URL 传递密码字符串:

HttpWatch 能够展示安全诉求的从头到尾的经过,因为它与浏览器集成,由此它亦可在 HTTPS 请求的 SSL 连接对数据加密此前查看数据。图片 3

若果你选取互连网嗅探器查看,举例 Network Monitor,对于同一个供给,你只好够查阅加密其后的多寡。在数据包追踪中向来不可以预知的网站,题目或内容:

图片 4

你能够信赖 HTTPS 央求是安全的,只要:

  • 未忽视任何SSL证书警示
  • Web 服务器用于运营 SSL 连接的私钥在 Web 服务器本身之外不可用。

之所以,在网络范围,URL 参数是平安的,不过还也许有部分此外依照 URL 泄漏数据的办法:

  1. URL 存储在 Web 服务器日志中–平日每一个需要的欧洲经济共同体 URL 都被存放在服务器日志中。那代表 URL 中的任何敏感数据(比方密码)会以公开情势保留在服务器上。以下是行使查询字符串通过 HTTPS 发送密码时存款和储蓄在 httpwatch.com 服务器日志中的条约: **2010-02-20 10:18:27 W3SVC4326 WWW 208.101.31.210 GET /Default.htm password=mypassword 443 … 平时认为便是是在服务器上,储存明文密码一向都不是好主张 2.URLs are stored in the browser history – browsers save URL parameters in their history even if the secure pages themselves are not cached. Here’s the IE history displaying the URL parameter:
  2. URL 存储在浏览器历史记录中–即便安全网页本人未缓存,浏览器也会将 URL 参数保存在其历史记录中。以下是 IE 的历史记录,显示了 URL 的央求参数:图片 5

固然顾客创立书签,查询字符串参数也将被存放。

  1. URLReferrer 诉求头中被传送–假若一个安然依旧网页使用财富,举例 javascript,图片或许深入分析服务,URL 将通过 Referrer 央浼头传递到每贰个松开对象。不常,查询字符串参数大概被传送并寄存在第三方站点。在 HttpWatch 中,你能够看出大家的密码字符串正被发送到 Google Analytics图片 6

结论

减轻那一个难题亟待两步:

  • 只有在绝对须求的场所下传递敏感数据。一旦顾客被认证,最棒使用全数有限生命周期的会话 ID 来标记它们。

行使会话层级的 cookies 传递音信的长处是:

  • 它们不会蕴藏在浏览器历史记录中或磁盘上
  • 它们平日不存款和储蓄在服务器日志中
  • 它们不会传递到嵌入式财富,举例图片或 JavaScript
  • 它们仅适用于央求它们的域和渠道

以下是我们的在线市肆中,用于识别客商的 ASP.NET 会话 cookie 示例:

图片 7

请注意,cookie 被界定在域 store.httpwatch.com,何况在浏览器会话截至时过期(即不会蕴藏到磁盘)。

您当然可以通过 HTTPS 传递查询字符串,不过并非在或然出现安全难题的情景下行使。例如,你能够安全的接纳它们展现部分数字依然项目,像 accountview 或者 printpage,不过毫无接纳它们传递密码,银行卡号码只怕别的不应有公开的音讯。

1 赞 收藏 评论

Get是获取音讯,并不是修改新闻,类似数据库查询作用雷同,数据不会被退换;

<a target="_blank" name="t5" style="color:rgb(12,137,207)"></a>sessionStorage对象

sessionStorage对象存款和储蓄特定于某些会话的多寡,也便是该数量只保证到浏览器关闭。这么些目的就如会话cookie,也会在浏览器关闭后消退。存款和储蓄在sessionStorage中的数据能够超过页面刷新而存在,同一时间假使浏览器帮衬,浏览器崩溃同等对待启之后如故可用(Fire福克斯和WebKit都帮助,IE不援助)
因为sessionStorage对象绑定于有些服务器会话,所以当文件在该地运营的时候是不可用的,存款和储蓄在sessionStorage中的数据只可以由最早给指标存款和储蓄数据的粗野访谈到,所以对多页面使用有限制。
sessionStorage对象足以行使setItem()大概间接设置新的质量来存储数据

//使用sessionStorage方法存储数据
sessionStorage.setitem('name','Nicholas');
//使用属性存储数据
sessionStorage.book = 'Profession JavaScript';

昔不前段时间浏览器写入数据方面略有不一致。FireFox和WebKit达成了伙同写入,所以加多到存储空间中的数据时马上被交付的。而IE的落实则是异步写入数据,所以在设置数据和将数据实际上写入磁盘之间可能有部分延迟。对于小量数目来讲,那么些距离是可以忽视的。对于大气数额,IE要比其他浏览器越来越快的回复推行,因为它会跳过其实的磁盘写入进程
在IE第88中学能够强制把多少写入磁盘:在装置新数据以前运用begin()方法,况且在颇负安装完毕后调用commit()方法

sessionStorage.begin();//确保在这段代码执行的时候不会发生其他磁盘写入操作
sessionStorage.setitem('name','Nicholas');
sessionStorage.book = 'Profession JavaScript';
sessionStorage.commit();

sessionStorage中有数量时,可以选取getItem()也许通过直接访谈属性名来获取数据。

//使用方法读取数据
var name = sessionStorage.getItem('name');
//使用属性读取数据
var book = sessionStorage.book;

还足以因而整合length属性和key()方法来迭代sessionStorage的值。

for(var i = 0,len = sessionStorage.length; i < len; i  ){
    var key = sessionStorage.key(i);
    var value = sessionStorage.getItem(key);
    alert(key   "="   value);
}

要从sessionStorage中去除数据足以选拔delete操作符删除对象属性,也可以调用removeItem()方法。

delete sessionStorage.name;
sessionStorge.removeItem('book');

Get诉求的参数会跟在url后举行传递,央浼的数码会附在UQashqaiL之后,以?分割UHighlanderL和传输数据,参数之间以&相连,%XX中的XX为该符号以16进制表示的ASCII,假如数量是俄语字母/数字,原样发送,若是是空格,调换为 ,即使是华语/别的字符,则一贯把字符串用BASE64加密。

<a target="_blank" name="t18" style="color:rgb(12,137,207)"></a>history在h5中新添的习性和方法

h5中的history对象新扩大了五个新方式:history.pushState()和history.replaeState();
二种艺术都允许大家加多和换代历史记录,它们的办事原理一样并且能够加上数量同样的参数。然而pushState()是在history栈中增加贰个新的条规,replaceState()是替换当前的记录值。除了艺术之外,还会有popstate 事件
pushState(data,title[,url])和replaceState(data,title[,url])参数同样,参数表达如下:

  • data:多个意味着境况的指标,json格式数据
  • title:三个string格式的标题(大大多浏览器不帮助或忽略这么些参数,最佳用null替代)
  • url:叁个url(用于替换当前U大切诺基L)

当浏览会话记录的时候,不管点击前进可能后退开关,照旧利用history.go和history.back方法,popstate事件都会被触发。当事件时有产生时,浏览器会从history中抽取U卡宴L和呼应的state对象替换当前的U福特ExplorerL和history.state。通过event.state也得以赢得history.state
急需表达的是pushState只是将近年来页面保存到history的历史记录中(并作为近些日子的多个笔录),并且将眼下浏览器的地址栏改为参数url钦赐的值,但并不会加载它。这一点与平时的经过链接展开或浏览器地址输入url完全分化。所以如若想在url改动的时候必要监听popstate事件。

行使history能够弥补ajax不可能回降的毛病。如下方法是仿照ajax操作的贯彻格局。

<input type="button" value="加1" onclick="add()" />
   <div id="info" style="border:red 1px solid;width:200px;padding:10px;">0</div>
<script>
    var info = document.getElementById('info');
    var i = 1;
    function add() {
        var data = {
            param : i,
            func : func
        };
        info.innerHTML = i;
        document.title = i;
        History.push(data);
        i  ;
    }

    function func(i) {
        info.innerHTML = i;
        document.title = i;
    }

    History = function() {  
            var 
               list = [],
               index = 1,

               func, scope;

            function push(data) {
                if(typeof data !== 'object') return;

                if(typeof data.param == undefined || typeof data.func !== 'function') return;

                func = data.func;
                scope = data.scope;

                history.pushState({param: data.param}, index, '#'   index);
                index  ;
            }

            window.onpopstate = function(e) {
                if(e.state) {
                    var state = e.state,
                        param = state.param;
                    if(param) {
                        func.call(scope, param);
                    }
                }
                else{
                    if(func){
                        func.call(scope, 0);
                    }

                }

            }

            return {
                push : push
            };
        }();
</script>

Get是向服务器发索取多少的一种哀告,而Post是向服务器交由数据的一种央浼;

<a target="_blank" name="t21" style="color:rgb(12,137,207)"></a>canvas

Canvas 通过 JavaScript 来绘制 2D 图形。
Canvas 是逐像素举行渲染的。
在 canvas 中,一旦图形被绘制实现,它就不会三番伍次得到浏览器的关心。借使其职分发生变化,那么全体场景也需求再度绘制,饱含别的或然已被图形覆盖的目的。

string name=context.Request.Form["pwd"];

<a name="t6"></a><a target="_blank" name="t13" style="color:rgb(12,137,207)"></a>Web Workers

专项使用Web Worker提供可多个简练的法子使的web内容能够在后台运维脚本。一旦worker成立后,它能够向由它的创制者钦赐的事件监听函数字传送递音信,那样改worker生成的装有使命就都会收下到那么些音信。worker线程能够在不压抑UI的图景下实践职责。

string name=Context.Request.QueryString["name"]

<a target="_blank" name="t12" style="color:rgb(12,137,207)"></a>读取拖放的文本

围绕读取文件音讯,结合使用Html5拖放API和文书API,能够创立出令人瞩指标客商分界面:在页面上制造了自定义的停放指标后,可以从桌面上把公文拖放到该指标。与拖放一张图片只怕二个链接类似,从桌面上把公文拖放到浏览器中也会触发drop事件。并且能够在e.dataTransfer.files中读到被停放的文件,当然此时它是二个File对象,与童年过文件输入字段取得的File对象同样。

var droptarget = document.getElementById('droptarget');

function handleEvent(e){
    var info = '';
    var output = document.getElementById('output');
    var files, i, len;
    e.preventDefault();
    if(e.type == 'drop') {
        files = e.dataTransfer.files;
        i = 0;
        len = files.length;
        while(i < len){
            info  = files[i].name   '('   files[i].type   ','   files[i].size   'bytes<br>';
            i  ;
        }
        output.innerHTML = info;
    }
}
droptarget.addHandler('dragenter',handleEvent,false);
droptarget.addHandler('drageover',handleEvent,false);
droptarget.addHandler('drop',handleEvent,false);

POST表示恐怕修改造服务器上的财富的乞求,在劳动器端,用Post格局提交的数量只可以用Request.Form来获取.

<a target="_blank" name="t16" style="color:rgb(12,137,207)"></a>Worker全局功能域

有关Web Worker,最关键的是要明了它所实行的JavaScript代码完全在另一个成效域,与当下网页中的代码不分享作用域。在Web Worker中,同样有一个大局对象和其余对象以致艺术。不过Web Worker中的代码不可能访谈DOM,也力不能及通过别的方法影响页面包车型客车外观
Web Worker中的全局对象是worker对象自己。也正是说,在那几个相当大局意义域中,this和sele援引的都以worker对象。为实惠管理数据,Web Worker本身也是二个最小化的周转条件

  • 最小化的navgator对象 : online、appName、appVersion、userAgent、platform
  • 只读的location对象 : 全体属性都是只读的
  • self : 指向全局 worker 对象
  • 所有的ECMA对象,Object、Array、Date等
  • XMLHttpRequest构造器
  • setTimeout、setInterval、clearTimeout()和clearInterval()方法

在worker内部,调用close()方法也得以告一段落工作。Worker截止专业后就不会再有事件时有发生。
别的,Worker的大局成效域中提供了importScripts()方法。那些艺术接收二个或五个指向JavaScript文件的UOdysseyL。各样加载进程都以异步举行的,因而根本的剧本加载并进行到位之后,importScripts()才会推行

importScripts('file1.js','file2.js');

即使file2.js先于file1.js下载完,推行的时候如故会安分守己前后相继顺序实行。而且,那一个脚本是在Worker的全局功用域中实践,即使脚本中带有与页面香瓜你的JavaScript代码,那么脚本只怕不可能准确运转。

Post诉求则作为http新闻的莫过于内容发送给web服务器,数据放置在HTML Header内提交,Post没有范围提交的数据。Post比Get安全,当数码是华语也许不灵动的数量,则用get,因为使用get,参数会显得在地点,对于灵动数据和不是中文字符的数额,则用post;

<a target="_blank" name="t9" style="color:rgb(12,137,207)"></a>FileReader类型

Flie里德r类型实现的是一种异步文件读取机制。能够把FileReader想象成XMLHttpRequest,分裂只是它读取的是文件心疼,并不是长距离服务器。为了读取文件中的数据,File里德r提供了如下多少个点子:

  • readAsText(file, encoding):以纯文本的样式读取文件,将读取到的公文物保护存在result属性中。
  • readAsDataUQashqaiL(file):读取文件并将文件一数额UPAJEROI的样式保留在result属性中
  • readAsBinaryString(file)(已放弃):读取文件并将二个字符串保存在result属性中,字符串中的每三个字符表示一字节
  • readAsArrayBuffer(file):读取文件并将三个包含文件内容的ArrayBuffer保存在result属性中。

鉴于读取进度是异步的,由此FileReader也提供了多少个事件。个中最管用的四个事件是progress、error和load,分别代表是还是不是又读取了新数据,是不是发生了错误以至是不是读完了全数文件。

var filesList = document.getElementById("files-list");
EventUtil.addHandler(filesList, "change", function(event){
    var info = "",
        output = document.getElementById("output"),
        progress = document.getElementById("progress"),
        files = EventUtil.getTarget(event).files,
        type = "default",
        reader = new FileReader();

    if (/image/.test(files[0].type)){
        reader.readAsDataURL(files[0]);
        type = "image";
    } else {
        reader.readAsText(files[0]);
        type = "text";
    }

    reader.onerror = function(){
        output.innerHTML = "Could not read file, error code is "   reader.error.code;
    };

    reader.onprogress = function(event){
        if (event.lengthComputable){
            progress.innerHTML = event.loaded   "/"   event.total;
        }
    };

    reader.onload = function(){

        var html = "";

        switch(type){
            case "image":
                html = "<img src=""   reader.result   "">";
                break;
            case "text":
                html = reader.result;
                break;

        }
        output.innerHTML = html;
    };
});

本文由betway必威发布于网页设计,转载请注明出处:Get请求与Post请求的区别,即使用了

Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。