নন-ক্রোম ব্রাউজারগুলিতে গুগল ক্রোম ডেটা সংক্ষেপণ প্রক্সি ব্যবহার করা দুটি পদক্ষেপের সাথে জড়িত।
- আপনার HTTP প্রক্সি
proxy.googlezip.net
এবং পোর্ট সেট করুন 80
।
- আপনার প্রতিটি অনুরোধের জন্য,
Chrome-Proxy
আপনার অনুরোধে শিরোনাম গণনা করুন এবং ইনজেক্ট করুন ।
Chrome-Proxy
হেডার নিম্নলিখিত পংক্তি থাকা উচিত:
ps=<timestamp>-<num1>-<num2>-<num3>, sid=<md5 string>, b=<build>, p=<patch>, c=<platform>
যেখানে:
- টাইমস্ট্যাম্প: ইউনিক্স যুগের আগে থেকে কেটে যাওয়া সেকেন্ডের বর্তমান সংখ্যা
- num1, num2, num3: এলোমেলো সংখ্যা যা সেট করা যেতে পারে
0
- এমডি 5 স্ট্রিং: অ্যাথ স্ট্রিংয়ের এমডি 5
- প্রমাণীকরণের স্ট্রিং: "
<timestamp>
" + " <auth key>
" + " <timestamp>
"
- প্রমাণীকরণ কী:
ac4500dd3b7579186c1b0620614fdb1f7d61f944
- বিল্ড: ক্রোম বিল্ড নম্বর, এ সেট করা যেতে পারে
2214
- প্যাচ: ক্রোম প্যাচ নম্বর, সেট করা যেতে পারে
115
- প্ল্যাটফর্ম: ক্রোম প্ল্যাটফর্ম, "
win
" এ সেট করা যেতে পারে
শিরোনামের পুরো উদাহরণ হিসাবে আপনার কাছে থাকতে পারে: Chrome-Proxy: ps=1439961190-0-0-0, sid=9fb96126616582c4be88ab7fe26ef593, b=2214, p=115, c=win
এখন, এটি ব্যবহারিকভাবে বাস্তবায়নের জন্য, আমি মনে করি একটি সহজ এক্সটেনশন ব্যবহার করা সহজ সমাধান তবে ফায়ারফক্সের জন্য এমন কোনও উপস্থিতি উপস্থিত নেই যা ইতিমধ্যে এই কার্যকারিতা রয়েছে।
অতএব, আমি ফায়ারফক্সের 38 বা ততোধিক সংস্করণের জন্য আমার নিজের ফায়ারফক্স এক্সটেনশনটি প্রয়োগ করেছি যা যে কেউ ফায়ারফক্সে গুগল ক্রোম ডেটা সংক্ষেপণ প্রক্সি ব্যবহার করতে দেয় এবং নীচের কোডটি সহ am
নিম্নলিখিতটি আমি প্রসারণটি বিকাশ ও পরীক্ষার জন্য ব্যবহার করেছিলাম এবং অন্যদের স্ক্র্যাচ থেকে এক্সটেনশনটি পুনরায় জন্মানোর অনুমতি দেয়।
- পান এবং ইনস্টল করুন
nodejs
এর মাধ্যমে npm
ইনস্টল করতে নোডেজ থেকে ব্যবহার jpm
করুনnpm install jpm
লক্ষ্য করুন উবুন্টু প্যাকেজের কিছু সংস্করণে node
যেমন nodejs
তাই যদি jpm
খুঁজে না পান node
আপনি nodejs আরেকটি বন্টন ইনস্টল অথবা জন্য একটি লিঙ্ক তৈরি করতে হতে পারে node
জন্যnodejs
এক্সটেনশনের জন্য এবং cd
এটিতে একটি নতুন ডিরেক্টরি তৈরি করুন
jpm init
- উত্তর ডিফল্ট সঙ্গে অনুরোধ জানানো হয়
- নীচে সরবরাহ করা কোডের সাথে আপনার সূচি.জেগুলি প্রতিস্থাপন করুন
jpm run
মনে রাখবেন যে যদি jpm
স্ট্যান্ডার্ড লোকেশনগুলিতে ফায়ারফক্স খুঁজে পেতে অক্ষম হন তবে jpm
আপনার ব্রাউজারটি কোথায় খুঁজে পাওয়া যায় তা জানাতে আপনাকে -b পতাকাটিও পাস করতে হবে। (যেমন jpm run -b /path/to/Firefox/Nightly
)
আপনার এই নতুন এক্সটেনশানটি লোড হওয়া এবং এই সেশনের সময় গুগল ক্রোম ডেটা কমপ্রেসন প্রক্সি দিয়ে সমস্ত ট্র্যাফিক প্রক্সির সাথে ফায়ারফক্স খোলা উচিত।
যেহেতু jpm run
একটি অস্থায়ী প্রোফাইল তৈরি করে, jpm run
আপনার ট্র্যাফিক প্রক্সাইড করতে চাইলে আপনাকে এই এক্সটেনশানটির প্রয়োজন হবে । আপনি অ্যাড-অন পরিচালককেও jpm xpi
এবং করতে পারেন Install Add-on From File
।
আপনি শিরোনামের প্রতিক্রিয়া শিরোনামগুলি পরীক্ষা করে আপনার ডেটা প্রক্সিং করা হচ্ছে Via
যা Chrome সংক্ষেপণ প্রক্সি (উদাহরণস্বরূপ Via: "1.1 Chrome-Compression-Proxy"
) এর উপরে ডেটা প্রেরণ করা নির্দেশ করে can
সার্ভারের প্রতিক্রিয়াগুলিতে Content-Length
শিরোনামটির সাথে শিরোনামটির তুলনা করে আপনি কতটা ডেটা সঞ্চয় করছেন তা নির্ধারণ করতে পারেন X-Original-Content-Length
।
Index.js এর জন্য কোড নিম্নলিখিত:
/*
* Data Compressor Proxy 0.0.1
* License: MPL
*
* Based on
* Data Compression Proxy Extension for Google Chrome on Desktop
* (c) 2014 Jerzy Glowacki. License: Apache 2.0
* and includes
* JavaScript MD5 1.0.1
* https://github.com/blueimp/JavaScript-MD5
* Copyright 2011, Sebastian Tschan
* https://blueimp.net
* Licensed under the MIT license:
* http://www.opensource.org/licenses/MIT
*
* JavaScript MD5 1.0.1 is Based on
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
* Digest Algorithm, as defined in RFC 1321.
* Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
* Distributed under the BSD License
* See http://pajhome.org.uk/crypt/md5 for more info.
*/
var self = require('sdk/self');
var { Class } = require('sdk/core/heritage');
var { Unknown } = require('sdk/platform/xpcom');
var {Cc, Ci} = require("chrome");
var prefsvc = require("sdk/preferences/service");
var httpRequestObserver = Class(
{
extends: Unknown,
interfaces: [ 'nsIObserver' ],
topic: '*',
observe: function(subject, topic, data)
{
if (topic == "http-on-modify-request") {
var httpChannel = subject.QueryInterface(Ci.nsIHttpChannel);
httpChannel.setRequestHeader("Chrome-Proxy", this.authHeader(), false);
}
},
get observerService() {
return Cc["@mozilla.org/observer-service;1"]
.getService(Ci.nsIObserverService);
},
authHeader : function() {
var authValue = 'ac4500dd3b7579186c1b0620614fdb1f7d61f944';
var timestamp = Date.now().toString().substring(0, 10);
return 'ps=' + timestamp + '-' + '0' + '-' + '0' + '-' + '0' + ', sid=' + md5(timestamp + authValue + timestamp) + ', b=2214' + ', p=115' + ', c=win';
},
register: function()
{
this.observerService.addObserver(this, "http-on-modify-request", false);
},
unregister: function()
{
this.observerService.removeObserver(this, "http-on-modify-request");
}
});
var httprequestobserver = httpRequestObserver();
httprequestobserver.register();
prefsvc.set("network.proxy.http", "proxy.googlezip.net");
prefsvc.set("network.proxy.http_port", 80);
prefsvc.set("network.proxy.type", 1);
!function(a){"use strict";function b(a,b){var c=(65535&a)+(65535&b),d=(a>>16)+(b>>16)+(c>>16);return d<<16|65535&c}function c(a,b){return a<<b|a>>>32-b}function d(a,d,e,f,g,h){return b(c(b(b(d,a),b(f,h)),g),e)}function e(a,b,c,e,f,g,h){return d(b&c|~b&e,a,b,f,g,h)}function f(a,b,c,e,f,g,h){return d(b&e|c&~e,a,b,f,g,h)}function g(a,b,c,e,f,g,h){return d(b^c^e,a,b,f,g,h)}function h(a,b,c,e,f,g,h){return d(c^(b|~e),a,b,f,g,h)}function i(a,c){a[c>>5]|=128<<c%32,a[(c+64>>>9<<4)+14]=c;var d,i,j,k,l,m=1732584193,n=-271733879,o=-1732584194,p=271733878;for(d=0;d<a.length;d+=16)i=m,j=n,k=o,l=p,m=e(m,n,o,p,a[d],7,-680876936),p=e(p,m,n,o,a[d+1],12,-389564586),o=e(o,p,m,n,a[d+2],17,606105819),n=e(n,o,p,m,a[d+3],22,-1044525330),m=e(m,n,o,p,a[d+4],7,-176418897),p=e(p,m,n,o,a[d+5],12,1200080426),o=e(o,p,m,n,a[d+6],17,-1473231341),n=e(n,o,p,m,a[d+7],22,-45705983),m=e(m,n,o,p,a[d+8],7,1770035416),p=e(p,m,n,o,a[d+9],12,-1958414417),o=e(o,p,m,n,a[d+10],17,-42063),n=e(n,o,p,m,a[d+11],22,-1990404162),m=e(m,n,o,p,a[d+12],7,1804603682),p=e(p,m,n,o,a[d+13],12,-40341101),o=e(o,p,m,n,a[d+14],17,-1502002290),n=e(n,o,p,m,a[d+15],22,1236535329),m=f(m,n,o,p,a[d+1],5,-165796510),p=f(p,m,n,o,a[d+6],9,-1069501632),o=f(o,p,m,n,a[d+11],14,643717713),n=f(n,o,p,m,a[d],20,-373897302),m=f(m,n,o,p,a[d+5],5,-701558691),p=f(p,m,n,o,a[d+10],9,38016083),o=f(o,p,m,n,a[d+15],14,-660478335),n=f(n,o,p,m,a[d+4],20,-405537848),m=f(m,n,o,p,a[d+9],5,568446438),p=f(p,m,n,o,a[d+14],9,-1019803690),o=f(o,p,m,n,a[d+3],14,-187363961),n=f(n,o,p,m,a[d+8],20,1163531501),m=f(m,n,o,p,a[d+13],5,-1444681467),p=f(p,m,n,o,a[d+2],9,-51403784),o=f(o,p,m,n,a[d+7],14,1735328473),n=f(n,o,p,m,a[d+12],20,-1926607734),m=g(m,n,o,p,a[d+5],4,-378558),p=g(p,m,n,o,a[d+8],11,-2022574463),o=g(o,p,m,n,a[d+11],16,1839030562),n=g(n,o,p,m,a[d+14],23,-35309556),m=g(m,n,o,p,a[d+1],4,-1530992060),p=g(p,m,n,o,a[d+4],11,1272893353),o=g(o,p,m,n,a[d+7],16,-155497632),n=g(n,o,p,m,a[d+10],23,-1094730640),m=g(m,n,o,p,a[d+13],4,681279174),p=g(p,m,n,o,a[d],11,-358537222),o=g(o,p,m,n,a[d+3],16,-722521979),n=g(n,o,p,m,a[d+6],23,76029189),m=g(m,n,o,p,a[d+9],4,-640364487),p=g(p,m,n,o,a[d+12],11,-421815835),o=g(o,p,m,n,a[d+15],16,530742520),n=g(n,o,p,m,a[d+2],23,-995338651),m=h(m,n,o,p,a[d],6,-198630844),p=h(p,m,n,o,a[d+7],10,1126891415),o=h(o,p,m,n,a[d+14],15,-1416354905),n=h(n,o,p,m,a[d+5],21,-57434055),m=h(m,n,o,p,a[d+12],6,1700485571),p=h(p,m,n,o,a[d+3],10,-1894986606),o=h(o,p,m,n,a[d+10],15,-1051523),n=h(n,o,p,m,a[d+1],21,-2054922799),m=h(m,n,o,p,a[d+8],6,1873313359),p=h(p,m,n,o,a[d+15],10,-30611744),o=h(o,p,m,n,a[d+6],15,-1560198380),n=h(n,o,p,m,a[d+13],21,1309151649),m=h(m,n,o,p,a[d+4],6,-145523070),p=h(p,m,n,o,a[d+11],10,-1120210379),o=h(o,p,m,n,a[d+2],15,718787259),n=h(n,o,p,m,a[d+9],21,-343485551),m=b(m,i),n=b(n,j),o=b(o,k),p=b(p,l);return[m,n,o,p]}function j(a){var b,c="";for(b=0;b<32*a.length;b+=8)c+=String.fromCharCode(a[b>>5]>>>b%32&255);return c}function k(a){var b,c=[];for(c[(a.length>>2)-1]=void 0,b=0;b<c.length;b+=1)c[b]=0;for(b=0;b<8*a.length;b+=8)c[b>>5]|=(255&a.charCodeAt(b/8))<<b%32;return c}function l(a){return j(i(k(a),8*a.length))}function m(a,b){var c,d,e=k(a),f=[],g=[];for(f[15]=g[15]=void 0,e.length>16&&(e=i(e,8*a.length)),c=0;16>c;c+=1)f[c]=909522486^e[c],g[c]=1549556828^e[c];return d=i(f.concat(k(b)),512+8*b.length),j(i(g.concat(d),640))}function n(a){var b,c,d="0123456789abcdef",e="";for(c=0;c<a.length;c+=1)b=a.charCodeAt(c),e+=d.charAt(b>>>4&15)+d.charAt(15&b);return e}function o(a){return unescape(encodeURIComponent(a))}function p(a){return l(o(a))}function q(a){return n(p(a))}function r(a,b){return m(o(a),o(b))}function s(a,b){return n(r(a,b))}function t(a,b,c){return b?c?r(b,a):s(b,a):c?p(a):q(a)}"function"==typeof define&&define.amd?define(function(){return t}):a.md5=t}(this);