Cross Origin Storage API: ਫਾਈਲਾਂ ਨੂੰ ਦੋ ਵਾਰ ਡਾਊਨਲੋਡ ਕਰਨਾ ਬੰਦ ਕਰੋ
Cross-Origin Storage API ਬ੍ਰਾਊਜ਼ਰਾਂ ਨੂੰ ਦੋ ਵੈੱਬਸਾਈਟਾਂ ਵਿਚਕਾਰ 33 GB ਦਾ AI ਮਾਡਲ ਸਾਂਝਾ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦੇ ਸਕਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਤੁਹਾਡਾ ਡਾਊਨਲੋਡ ਕੀਤਾ ਜਾਣ ਵਾਲਾ ਡਾਟਾ 66 GB ਤੋਂ ਘਟ ਕੇ 33 GB ਰਹਿ ਜਾਵੇਗਾ।
ਬ੍ਰਾਊਜ਼ਰ ਪਹਿਲਾਂ ਕਿਸੇ ਵੀ ਸਾਈਟ ਨੂੰ ਅਜਿਹੀ ਫਾਈਲ ਦੀ ਮੁੜ ਵਰਤੋਂ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਸਨ ਜੋ ਕਿਸੇ ਹੋਰ ਸਾਈਟ ਦੁਆਰਾ ਪਹਿਲਾਂ ਹੀ ਫੈਚ (fetch) ਕੀਤੀ ਜਾ ਚੁੱਕੀ ਹੋਵੇ। ਜੇਕਰ ਤੁਸੀਂ ਦੋ ਪੇਜਾਂ 'ਤੇ ਇੱਕੋ CDN ਤੋਂ ਇੱਕੋ React bundle ਲੋਡ ਕਰਦੇ ਹੋ, ਤਾਂ ਬ੍ਰਾਊਜ਼ਰ ਦੂਜੀ ਵਾਰ ਕੈਸ਼ ਕੀਤੀ ਕਾਪੀ (cached copy) ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਪ੍ਰਾਈਵੇਸੀ-ਕੇਂਦਰਿਤ ਤਬਦੀਲੀਆਂ ਦੀ ਇੱਕ ਲੜੀ ਨੇ ਇਸ ਸਹੂਲਤ ਨੂੰ ਖਤਮ ਕਰ ਦਿੱਤਾ ਹੈ: ਹੁਣ ਬ੍ਰਾਊਜ਼ਰ ਕੈਸ਼ ਨੂੰ ਸਾਈਟ ਦੇ ਅਨੁਸਾਰ ਵੱਖ-ਵੱਖ (partition) ਕਰਦੇ ਹਨ, ਇਸ ਲਈ ਇੱਕੋ ਜਿਹੇ URL ਵੀ ਹਰੇਕ origin ਲਈ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਸਟੋਰ ਕੀਤੇ ਜਾਂਦੇ ਹਨ। ਨਤੀਜੇ ਵਜੋਂ, ਹਰ ਉਸ ਵੱਡੀ ਐਸੇਟ (asset) ਲਈ ਡੁਪਲੀਕੇਟ ਟ੍ਰੈਫਿਕ ਪੈਦਾ ਹੁੰਦਾ ਹੈ ਜੋ ਇੱਕ ਤੋਂ ਵੱਧ ਸਾਈਟਾਂ 'ਤੇ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ।
ਡੁਪਲੀਕੇਟ-ਡਾਊਨਲੋਡ ਦੀ ਸਮੱਸਿਆ ਹੁਣ ਕਿਉਂ ਮਹੱਤਵਪੂਰਨ ਹੈ
ਇਹ ਬਰਬਾਦੀ ਛੋਟੀਆਂ ਫਾਈਲਾਂ—ਜਿਵੇਂ ਕਿ ਵੈੱਬ ਫੌਂਟ ਜਾਂ ਕੁਝ ਮੈਗਾਬਾਈਟ JavaScript—ਨਾਲ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ, ਪਰ ਜਦੋਂ ਐਸੇਟ ਇੱਕ ਮਲਟੀ-ਗੀਗਾਬਾਈਟ AI ਮਾਡਲ ਜਾਂ WebAssembly ਮੋਡਿਊਲ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਇਹ ਬਹੁਤ ਜ਼ਿਆਦਾ ਵਧ ਜਾਂਦੀ ਹੈ।
Cross-Origin Storage (COS) API ਕਿਵੇਂ ਕੰਮ ਕਰਦੀ ਹੈ
ਇਹ ਪ੍ਰਸਤਾਵ URL-ਅਧਾਰਤ ਲੁੱਕਅੱਪ (lookup) ਦੀ ਜਗ੍ਹਾ ਕੰਟੈਂਟ-ਐਡਰੈੱਸਡ (content-addressed) ਲੁੱਕਅੱਪ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਇੱਕ ਸਾਈਟ ਉਸ ਫਾਈਲ ਦਾ SHA-256 ਹੈਸ਼ (hash) ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ ਜਿਸਦੀ ਉਸਨੂੰ ਲੋੜ ਹੈ। ਬ੍ਰਾਊਜ਼ਰ ਆਪਣੇ ਲੋਕਲ ਸਟੋਰ ਵਿੱਚ ਉਸੇ ਹੈਸ਼ ਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ, ਚਾਹੇ ਉਹ ਕਿਸੇ ਵੀ origin ਦੁਆਰਾ ਪਹਿਲਾਂ ਫੈਚ ਕੀਤੀ ਗਈ ਹੋਵੇ। ਜੇਕਰ ਫਾਈਲ ਉੱਥੇ ਮੌਜੂਦ ਹੈ, ਤਾਂ ਬ੍ਰਾਊਜ਼ਰ ਉਹ ਫਾਈਲ ਦੇ ਦਿੰਦਾ ਹੈ; ਜੇਕਰ ਨਹੀਂ, ਤਾਂ ਇਹ ਨੈੱਟਵਰਕ ਤੋਂ ਫਾਈਲ ਫੈਚ ਕਰਦਾ ਹੈ ਅਤੇ ਭਵਿੱਖ ਵਿੱਚ cross-origin ਮੁੜ ਵਰਤੋਂ ਲਈ ਉਸ ਹੈਸ਼ ਦੇ ਅਧੀਨ ਸਟੋਰ ਕਰਦਾ ਹੈ।
- ਹੈਸ਼ ਦੁਆਰਾ ਪਛਾਣ। ਹੈਸ਼ ਫਾਈਲ ਦੇ ਬਾਈਟਸ (bytes) ਦੀ ਵਿਲੱਖਣ ਤੌਰ 'ਤੇ ਪ੍ਰਤੀਨਿਧਤਾ ਕਰਦਾ ਹੈ, ਨਾ ਕਿ ਇਸਦੇ ਸਥਾਨ ਦੀ।
- Cross-origin ਪਹੁੰਚ। ਕੋਈ ਵੀ ਸਾਈਟ ਜਿਸਨੂੰ ਹੈਸ਼ ਪਤਾ ਹੈ, ਉਹ ਫਾਈਲ ਦੀ ਬੇਨਤੀ ਕਰ ਸਕਦੀ ਹੈ, ਭਾਵੇਂ ਇਹ ਕਿਤੇ ਹੋਰ ਤੋਂ ਆਈ ਹੋਵੇ।
- ਲੋਕਲ ਕੈਸ਼ ਸਾਂਝਾ ਕਰਨਾ। ਇੱਕੋ ਸਰੀਰਕ ਕਾਪੀ ਕਈ ਬੇਨਤੀਆਂ ਨੂੰ ਪੂਰਾ ਕਰਦੀ ਹੈ।
ਇਹ API ਜਾਣਬੁੱਝ ਕੇ ਸੀਮਤ ਰੱਖੀ ਗਈ ਹੈ: ਇਹ ਮੌਜੂਦਾ Cache API ਜਾਂ IndexedDB ਦੀ ਜਗ੍ਹਾ ਨਹੀਂ ਲੈਂਦੀ। ਉਹ ਆਮ ਉਦੇਸ਼ ਵਾਲੇ ਸਟੋਰੇਜ ਲਈ ਸਾਧਨ ਬਣੇ ਹੋਏ ਹਨ; COS ਵੱਡੇ, ਇੱਕੋ ਜਿਹੇ blobs ਲਈ ਇੱਕ ਸਿੰਗਲ-ਪਰਪਜ਼ ਸ਼ਾਰਟਕੱਟ ਹੈ।
ਡਿਜ਼ਾਈਨ ਵਿੱਚ ਬਣਾਏ ਗਏ ਪ੍ਰਾਈਵੇਸੀ ਸੁਰੱਖਿਆ ਉਪਾਅ
ਸਾਈਟਾਂ ਨੂੰ ਯੂਜ਼ਰ ਦੇ ਕੈਸ਼ ਦੀ ਜਾਂਚ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦੇਣ ਨਾਲ ਉਹ ਟ੍ਰੈਕਿੰਗ ਵੈਕਟਰ (tracking vectors) ਦੁਬਾਰਾ ਆ ਸਕਦੇ ਹਨ ਜਿਨ੍ਹਾਂ ਨੂੰ partitioned caches ਰੋਕਣ ਲਈ ਬਣਾਏ ਗਏ ਸਨ। COS ਤਿੰਨ ਨਿਯਮਾਂ ਨਾਲ ਉਸ ਜੋਖਮ ਨੂੰ ਰੋਕਦਾ ਹੈ:
- ਕੋਈ ਐਨੂਮਰੇਸ਼ਨ (enumeration) ਨਹੀਂ। ਸਕ੍ਰਿਪਟਾਂ ਇਹ ਨਹੀਂ ਪੁੱਛ ਸਕਦੀਆਂ ਕਿ "ਤੁਹਾਡੇ ਕੋਲ ਕਿਹੜੇ ਹੈਸ਼ ਹਨ?"—ਸਟੋਰੇਜ ਅਪਾਰਦਰਸ਼ੀ (opaque) ਹੈ।
- ਜਾਣੇ-ਪਛਾਣੇ ਹੈਸ਼ ਦੀ ਲੋੜ। ਇੱਕ ਸਾਈਟ ਫਾਈਲ ਦੀ ਬੇਨਤੀ ਤਾਂ ਹੀ ਕਰ ਸਕਦੀ ਹੈ ਜੇਕਰ ਉਸਨੂੰ ਪਹਿਲਾਂ ਹੀ ਸਹੀ ਹੈਸ਼ ਪਤਾ ਹੋਵੇ। ਪਹਿਲਾਂ ਤੋਂ ਜਾਣਕਾਰੀ ਤੋਂ ਬਿਨਾਂ ਰੈਂਡਮ ਜਾਂਚ ਕਰਨਾ ਅਸੰਭਵ ਹੈ।
- ਗਲੋਬਲ ਪਹੁੰਚ ਲਈ ਲੋਕਪ੍ਰਿਯਤਾ ਦੀ ਸੀਮਾ। ਕਿਸੇ ਦੂਜੇ origin ਦੁਆਰਾ ਫਾਈਲ ਪ੍ਰਾਪਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ਫਾਈਲ ਦਾ ਕਾਫ਼ੀ ਆਮ ਹੋਣਾ ਜ਼ਰੂਰੀ ਹੈ—ਯਾਨੀ ਕਿ "ਅਨਾਇਮਸ" (anonymous)। ਦੁਰਲੱਭ ਫਾਈਲਾਂ ਉਸੇ origin ਤੱਕ ਸੀਮਤ ਰਹਿਣਗੀਆਂ ਜਿਸਨੇ ਉਹਨਾਂ ਨੂੰ ਪਹਿਲੀ ਵਾਰ ਡਾਊਨਲੋਡ ਕੀਤਾ ਸੀ।
ਇਹ ਸੀਮਾਵਾਂ API ਨੂੰ ਸੱਚਮੁੱਚ ਸਾਂਝੀਆਂ ਐਸੇਟਾਂ ਲਈ ਉਪਯੋਗੀ ਰੱਖਦੀਆਂ ਹਨ ਅਤੇ ਇਸਨੂੰ ਫਿੰਗਰਪ੍ਰਿੰਟਿੰਗ (fingerprinting) ਲਈ ਇੱਕ ਸਾਈਡ ਚੈਨਲ ਬਣਨ ਤੋਂ ਰੋਕਦੀਆਂ ਹਨ।
ਅੱਗੇ ਕੀ ਦੇਖਣਾ ਹੈ
Cross-Origin Storage API ਉਸ ਸਮੱਸਿਆ ਦਾ ਇੱਕ ਸਿੱਧਾ ਹੱਲ ਪੇਸ਼ ਕਰਦੀ ਹੈ ਜੋ ਬ੍ਰਾਊਜ਼ਰ ਦੇ ਅੰਦਰ ਵੱਡੀਆਂ ਐਸੇਟਾਂ ਦੇ ਵਧਣ ਨਾਲ ਵਧੀ ਹੈ। ਕੀ ਵੈੱਬ ਕਮਿਊਨਿਟੀ ਬੈਂਡਵਿਡਥ ਕੁਸ਼ਲਤਾ ਅਤੇ ਪ੍ਰਾਈਵੇਸੀ ਦੀਆਂ ਗਾਰੰਟੀਜ਼ (ਜਿਨ੍ਹਾਂ ਨੇ ਕੈਸ਼ ਪਾਰਟੀਸ਼ਨਿੰਗ ਨੂੰ ਉਤਸ਼ਾਹਿਤ ਕੀਤਾ ਸੀ) ਵਿਚਕਾਰ ਸੰਤੁਲਨ ਬਣਾ ਸਕਦੀ ਹੈ, ਇਹ ਤੈਅ ਕਰੇਗਾ ਕਿ ਇਹ ਵਿਚਾਰ ਡਰਾਫਟ ਪੜਾਅ ਤੋਂ ਅੱਗੇ ਵਧੇਗਾ ਜਾਂ ਨਹੀਂ। ਜੇਕਰ ਅਜਿਹਾ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਭਵਿੱਖ ਦੇ ਬ੍ਰਾਊਜ਼ਰ ਤੁਹਾਨੂੰ 30 ਤੋਂ ਵੱਧ ਗੀਗਾਬਾਈਟ ਦਾ AI ਮਾਡਲ ਇੱਕ ਵਾਰ ਡਾਊਨਲੋਡ ਕਰਨ ਅਤੇ ਇਸਨੂੰ ਹਰ ਜਗ੍ਹਾ ਮੁੜ ਵਰਤਣ ਦੀ ਇਜਾਜ਼ਤ ਦੇ ਸਕਦੇ ਹਨ—ਜਿਸ ਨਾਲ ਸਮਾਂ, ਡਾਟਾ ਅਤੇ ਊਰਜਾ ਦੀ ਬਚਤ ਹੋਵੇਗੀ।
