অনুরোধগুলির জন্য কি http সংক্ষেপণ সক্ষম করা সম্ভব?


35

আমি সার্ভার প্রতিক্রিয়াগুলির জন্য http সংক্ষেপণ সক্ষম করার বিষয়ে প্রচুর তথ্য দেখতে পাচ্ছি তবে আগত অনুরোধগুলির জন্য কী। ব্রাউজারগুলি সার্ভারে প্রেরণের আগে বড় আকারের পোস্টগুলি সংকোচিত করা কী বোঝায় না?

আরেকটি উদাহরণ হ'ল আমরা ব্যবহার করি এমন একটি রেস্ট ওয়েব ওয়েব। আমাদের বড় এক্সএমএল ফাইলগুলি (10+ এমবি) সহ ঘন ঘন পুট অনুরোধগুলি প্রেরণ করতে হবে এবং অবশ্যই উভয় পক্ষের কিছু ব্যান্ডউইথ / গতির সুবিধা দেখতে পাবে see

তাহলে এটি কি সার্ভার সাইডের কোনও সমস্যার সমাধান বা প্রতিটি ওয়েব অ্যাপ্লিকেশনটিকে স্বতন্ত্রভাবে পরিচালনা করতে হবে?

উত্তর:


30

করার PUTসার্ভারে ডাটা সংকুচিত আপনি অনুরোধের মূল কম্প্রেস এবং সেট করতে হবে Content-Encoding: gzipহেডার। শিরোনামটি নিজেই সঙ্কুচিত হওয়া উচিত। এটি Mod_deflate নথিভুক্ত :

Mod_deflate মডিউলটি একটি gzip সংক্ষেপিত অনুরোধের বডি ডিসক্রप्रेस করার জন্য একটি ফিল্টার সরবরাহ করে। এই বৈশিষ্ট্যটি সক্রিয় করার জন্য আপনাকে সেট ইনপুটফিল্টার বা অ্যাডিনপুটফিল্টার ব্যবহার করে ডিফল্ট ফিল্টারটি ইনপুট ফিল্টার চেইনে প্রবেশ করতে হবে।

...

এখন যদি কোনও অনুরোধে কোনও বিষয়বস্তু-এনকোডিং থাকে: gzip শিরোনাম, শরীর স্বয়ংক্রিয়ভাবে সঙ্কুচিত হবে। কয়েকটি ব্রাউজারের কাছে জিপিপ রিকোয়েস্ট করার ক্ষমতা রয়েছে। যাইহোক, কিছু বিশেষ অ্যাপ্লিকেশনগুলি আসলে অনুরোধ সংক্ষেপণ সমর্থন করে, উদাহরণস্বরূপ কিছু ওয়েবডিএভি ক্লায়েন্ট।

এবং একটি নিবন্ধ এটি বর্ণনা এখানে :

তাহলে তুমি কিভাবে এটা করেছ? Mod_deflate উত্স কোড থেকে আবার এখানে একটি ব্লার্ব রয়েছে: কেবলমাত্র মূল অনুরোধে / কোনও সাব-কিউয়েস্টগুলিতে কাজ করুন। এর অর্থ হ'ল অনুরোধের পুরো বডিটি অবশ্যই gzip কমপ্রেস করা উচিত যদি আমরা এটি ব্যবহার করা বেছে নিয়ে থাকি তবে উদাহরণস্বরূপ, একটি মাল্টিপার্ট রিকুয়েস্টে ফাইল যুক্ত অংশটি সংকোচন করা সম্ভব নয়।

পৃথকভাবে, একটি ব্রাউজার সার্ভারের প্রতিক্রিয়া সামগ্রীটি এখানেAccept-Encoding হিসাবে শিরোনাম সেট করে সংকুচিত হওয়ার জন্য অনুরোধ করতে পারে :

GET /index.html HTTP/1.1
Host: www.http-compression.com
Accept-Encoding: gzip
User-Agent: Firefox/1.0

এটি ব্রাউজারে সংকুচিত ডেটা ফিরিয়ে দেবে।


5
+1 এনবি আপনি লেখেন you must compress the whole request, inclusive of header। তবে, http শিরোনামগুলি সংকুচিত করা উচিত নয় । কেবলমাত্র যে জিনিসটি সংকুচিত করতে হবে (সম্পূর্ণভাবে, নিবন্ধটি আপনি সঠিকভাবে উদ্ধৃত করেছেন তেমন), এটি হ'ল এইচডিপি বডি।
ইউজিন বেরেসভস্কি

1
এটি ভুল: Accept-Encodingসার্ভারকে বলে, ক্লায়েন্ট কী সংক্ষেপণ সমর্থন করে। শিরোনাম Content-Encodingশরীরে সংকোচনের বর্ণনা দেয়।
মার্টিনাস

@ maaartinus প্রথম উদ্ধৃতি দ্বিতীয় অনুচ্ছেদ দেখুন। আমি স্বচ্ছতার জন্য উত্তর পুনর্গঠিত করেছি।
অ্যান্ডি

4

সংক্ষিপ্ত অনুরোধগুলি সম্পর্কে অংশটির জবাব দেওয়া, প্রতিক্রিয়া নয়: হ্যাঁ, এটি সম্ভব, এমনকি এটি ব্যাপক ব্যবহারে নাও দেখা যায়। ক্লায়েন্ট-সাইড অ্যাপ্লিকেশনটিকে উপযুক্ত সামগ্রী-এনকোডিং শিরোনাম সেট করতে হবে। সার্ভার-সাইড অ্যাপ্লিকেশন হিসাবে, এখানে 2 টি পছন্দ রয়েছে:

  1. অ্যাপ্লিকেশনটি অনুরোধের বডিটি নিজেই পুনরায় সংযুক্তকরণকে সমর্থন করে। এটি করতে পারে এমন উদাহরণ লাইব্রেরি হ'ল phpxMLrpc ml

  2. ওয়েবসভারটি অ্যাপ্লিকেশনটিতে যাওয়ার আগে প্রতিক্রিয়া বডিটিকে স্ফীত করে। এটি অ্যাপাচি এর Mod_deflate ফিল্টার ব্যবহার করে এবং একটি ইনপুট ফিল্টার সেটআপ করা সম্ভব


2

স্থানীয়ভাবে আমার জানা কোনও ব্রাউজার থেকে নয়, আপনাকে এমন একটি প্লাগইন খুঁজে পেতে হবে যা এটি আপনার জন্য করবে। অনুরোধটি কীভাবে আসছে তা সার্ভারকে জানাতে আপনাকে মূলত কন্টেন্ট-এনকোডিং এইচটিটিপি শিরোনাম সেট করতে হবে The সার্ভারটি অবশ্যই অবশ্যই সেই এনকোডিংটি পরিচালনা করতে সক্ষম হবে।


0

এই অনুমতি দেওয়া হয় না. এইচটিটিপি স্পেসিফিকেশন অনুসারে ( আরএফসি 2616 ), Content-Encodingসম্ভাব্য অনুরোধ শিরোনাম ক্ষেত্রগুলির মধ্যে একটি নয়, সুতরাং সার্ভারকে এটি ঘটেছে তা জানানোর কোনও আইনি উপায় নেই বলে অনুরোধ সত্তা সংস্থাকে সংকুচিত করা সম্ভব নয়। অনুরোধ সংস্থার যে কোনও সংকোচন কেবলমাত্র একটি মান-প্রমিত এক্সটেনশন হিসাবে সম্পন্ন হয়।


12
এই উত্তরটি ভুল আরএফসি 2616 বিশেষভাবে উল্লেখ করেছে যে If the content-coding of an entity in a request message is not acceptable to the origin server, the server SHOULD respond with a status code of 415 (Unsupported Media Type).আরও নির্দেশিত Request and Response messages MAY transfer an entity if not otherwise restricted by the request methodএবং Content-Encodingবিকল্প হিসাবে তালিকাভুক্ত করা হয়েছেentity-header
পিটারটি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.