HTTP শিরোনামের মানগুলিতে সর্বাধিক?


326

এইচটিটিপি শিরোলেখগুলির জন্য কি কোনও অনুমোদিত অনুমোদিত আকার রয়েছে? যদি তাই হয়, এটা কি? যদি তা না হয় তবে এটি কি এমন কোনও যা সার্ভারটি নির্দিষ্ট বা কোনও আকারের শিরোনামকে মঞ্জুরি দেওয়ার জন্য স্বীকৃত মান?

উত্তর:


316

না, এইচটিটিপি কোনও সীমা নির্ধারণ করে না। তবে বেশিরভাগ ওয়েব সার্ভারগুলি তারা গ্রহণ করে এমন শিরোনামের আকার সীমাবদ্ধ করে। উদাহরণস্বরূপ অ্যাপাচে ডিফল্ট সীমাটি 8KB, আইআইএসে এটি 16 কে413 Entity Too Largeযদি শিরোনামের আকারটি সীমাটি অতিক্রম করে তবে সার্ভার ত্রুটি ফিরিয়ে দেবে ।

সম্পর্কিত প্রশ্ন: একজন ব্যবহারকারী এজেন্ট স্ট্রিং কত বড় পেতে পারে?


10
এই উত্তরে বলা হয়েছে যে সার্ভারের দ্বারা সর্বাধিক স্বীকৃত হেডার আকার size তবে ওয়েব সার্ভারের সর্বোচ্চ শিরোনামের আকারটি কী (উদাহরণস্বরূপ অ্যাপাচি) প্রেরণে সক্ষম?
পেসারিয়ার

@ পেসারিয়র: এটি অ্যাপাচি এর মতো দেখতে 8175 বাইট, তবে আমি এখনও অনুসন্ধান করছি। এছাড়াও যদি আপনি যে কোনও ব্যাকএন্ড থেকে সীমাবদ্ধ হয়ে যান তবে দরকারী ত্রুটি বার্তা পাওয়ার আশা করবেন না।
hakre

2
@ হ্যাক্রে: আইআইআরসি, পুরো লাইনের জন্য 8 কে, পুরো শিরোনামের লাইনগুলি গণনা করে (শিরোনামের নাম, সাদা-স্থান এবং শিরোনামের পে-লোড)।
ভের্টেক

শিরোনামটির কাস্টম সর্বাধিক আকার নির্ধারণ করার কোনও উপায় আছে?
সুদীপ বোলাখে

সম্ভবত আইপিএস এসপিএনএগো এবং কার্বেরোস প্রোটোকলগুলির প্রয়োজনীয়তার কারণে 16 কে খোলা রয়েছে এবং এগুলি প্রায়শই "উইন্ডোজ প্রমাণীকরণ" জন্য ব্যবহৃত হয়।
রোনান কেরডুডু

220

যেমন ভের্টেক উপরে বলেছে, এইচটিটিপি স্পেক সীমা নির্ধারণ করে না, তবে অনেক সার্ভার ডিফল্টরূপে করে। এর অর্থ, ব্যবহারিকভাবে বলতে গেলে নীচের সীমাটি 8K । বেশিরভাগ সার্ভারের জন্য, এই সীমাটি অনুরোধ লাইন এবং সমস্ত শিরোলেখ ক্ষেত্রের সমষ্টিতে প্রযোজ্য (সুতরাং আপনার কুকিজগুলি সংক্ষিপ্ত রাখুন)।

এটি লক্ষণীয় যে nginx সিস্টেম পৃষ্ঠার আকার ডিফল্ট হিসাবে ব্যবহার করে যা বেশিরভাগ সিস্টেমে 4K হয়। আপনি এই ক্ষুদ্র প্রোগ্রামটি দিয়ে পরীক্ষা করতে পারেন:

pagesize.c:

#include <unistd.h>
#include <stdio.h>

int main() {
    int pageSize = getpagesize();
    printf("Page size on your system = %i bytes\n", pageSize);
    return 0;
}

gcc -o pagesize pagesize.cতারপর চালানো সঙ্গে সংকলন ./pagesizeলিনোডের আমার উবুন্টু সার্ভারটি আমাকে ডিউটিলিটি জানিয়েছে উত্তরটি 4 কে।


6
অ্যাপাচি 2 এর জন্য, ইউআরএল দৈর্ঘ্য নিয়ন্ত্রিত হয় LimitRequestLineএবং LimitRequestFieldSizeপ্রতিটি এইচটিটিপি শিরোলেখ লাইনের জন্য পৃথকভাবে প্রযোজ্য ... "যোগফল ..." নয়
ইয়ভেস মার্টিন

1
কুকিজ একটি পৃথক আছে মোট 4093 বাইটের সীমাকে। stackoverflow.com/questions/640938/…
জেফ লোয়ার

25
পৃষ্ঠার আকার পেতে কোড লেখার দরকার নেই। একটি টার্মিনাল থেকে: getconf পৃষ্ঠাগুলি
পনিটেক

6
এই উত্তরটি লেখা হওয়ার পরে এটি সম্ভবত পরিবর্তন হয়েছে, তবে লিঙ্কযুক্ত এনজিনেক্স পৃষ্ঠা উত্তরটির সাথে মেলে না। এনজিনেক্স পৃষ্ঠাটি নির্দেশ করে যে ডিফল্ট বাফার আকারটি 8k এবং অনুরোধটি ডিফল্টরূপে 4 টি বাফার ব্যবহার করতে পারে (বাফার আকারটি নিজেই অনুরোধ লাইনের আকার এবং প্রতিটি পৃথক শিরোনামের সীমাবদ্ধ করে)। সুতরাং এটি পরামর্শ দেয় যে এনগিনেক্স 16-32k এর মধ্যে কোথাও অনুমতি দেয় (আমি ধরে নিচ্ছি যে একটি লাইন দুটি বাফারে বিভক্ত করা যাবে না, তাই বাফারগুলি পুরো পথটি পূরণ করা যাবে না)।
লিলি ব্যালার্ড

অ্যাপাচি ২.৪-তে মানটি যোগ করা যা একই থাকে: httpd.apache.org/docs/2.4/mod/core.html#limitrequestfieldsize : অ্যাপাচি ২.০, ২.২,২.৪: ৮ কে
মেড আলি ডিফাল্লাহ

5

এইচটিটিপি প্রতিটি শিরোলেখের ক্ষেত্রের দৈর্ঘ্যের উপর বা সামগ্রিকভাবে শিরোনাম বিভাগের দৈর্ঘ্যের উপর পূর্বনির্ধারিত সীমা স্থাপন করে না, বিভাগটি 2.5 হিসাবে বর্ণিত। পৃথক শিরোনামের ক্ষেত্রের দৈর্ঘ্যের বিভিন্ন অ্যাডহক সীমাবদ্ধতাগুলি প্রায়শই নির্দিষ্ট ক্ষেত্রের শব্দার্থবিজ্ঞানের উপর নির্ভর করে অনুশীলনে পাওয়া যায়।

এইচটিটিপি শিরোনাম মানগুলি সার্ভার বাস্তবায়ন দ্বারা সীমাবদ্ধ। এইচটিপি স্পেসিফিকেশন শিরোনামের আকারকে সীমাবদ্ধ করে না।

একটি সার্ভার যা একটি অনুরোধ শিরোনাম ক্ষেত্র, বা ক্ষেত্রের সেট গ্রহণ করে, এটি যথাযথ 4XX (ক্লায়েন্ট ত্রুটি) স্থিতি কোডের সাথে সাড়া জাগাতে হবে than এই জাতীয় শিরোনাম ক্ষেত্রগুলি উপেক্ষা করা চোরাচালান আক্রমণগুলির জন্য অনুরোধ করার জন্য সার্ভারের দুর্বলতা বাড়িয়ে তুলবে (বিভাগ 9.5)।

বেশিরভাগ সার্ভার ফিরে আসবে 413 Entity Too Largeযখন এটি ঘটে তখন বা উপযুক্ত 4XX ত্রুটি হবে।

ক্লায়েন্ট মায়া বাতিল বা প্রাপ্ত শিরোনাম ক্ষেত্রগুলি কেটে যায় যা ক্লায়েন্টের চেয়ে বৃহত্তর প্রক্রিয়া করতে চায় যদি ক্ষেত্রের শব্দার্থবিদ্যা এমন হয় যে বাদ দেওয়া মান (গুলি) বার্তা ফ্রেমিং বা প্রতিক্রিয়া শব্দার্থ পরিবর্তন না করে নিরাপদে অগ্রাহ্য করা যায়।

আনক্যাপড এইচটিটিপি শিরোনামের আকারটি সার্ভারকে আক্রমণগুলির মুখোমুখি করে রাখে এবং জৈব ট্রাফিক সরবরাহের জন্য এর ক্ষমতা হ্রাস করতে পারে।

সূত্র


2

এখানে সর্বাধিক জনপ্রিয় ওয়েব সার্ভারের সীমা

  • অ্যাপাচি - 8 কে
  • এনগিনেক্স - 4 কে -8 কে
  • আইআইএস - 8 কে -16 কে
  • টমক্যাট - 8 কে - 48 কে

1

আমি আরও দেখতে পেয়েছি যে কিছু ক্ষেত্রে 502/400 কারণের ক্ষেত্রে অনেকগুলি শিরোনামের কারণ আকার বিবেচনা না করে বিপুল সংখ্যক শিরোনাম হতে পারে। ডক্স থেকে

tune.http.maxhdr একটি অনুরোধে সর্বাধিক সংখ্যক শিরোনাম সেট করে। যখন কোনও অনুরোধটি এই মান (প্রথম লাইন সহ) এর চেয়ে বেশি সংখ্যক শিরোনাম নিয়ে আসে, তখন এটি "400 খারাপ অনুরোধ" স্থিতি কোড দিয়ে প্রত্যাখ্যান করা হয়। একইভাবে, "502 ব্যাড গেটওয়ে" দিয়ে খুব বড় প্রতিক্রিয়া অবরুদ্ধ করা হয়েছে। ডিফল্ট মান 101, যা বহুল ব্যবহৃত ডিগ্রিযুক্ত অ্যাপাচি সার্ভার একই সীমা ব্যবহার করে বিবেচনা করে সমস্ত ব্যবহারের পক্ষে যথেষ্ট। কোনও বগি অ্যাপ্লিকেশন স্থির হওয়ার সাথে সাথে অস্থায়ীভাবে কাজ করার অনুমতি দেওয়ার জন্য এই সীমাটিকে আরও এগিয়ে দেওয়া কার্যকর হতে পারে। মনে রাখবেন যে প্রতিটি নতুন শিরোনাম প্রতিটি সেশনের জন্য 32 বিট মেমরি গ্রহণ করে, তাই এই সীমাটি খুব বেশি চাপুন না।

https://cbonte.github.io/haproxy-dconv/configuration-1.5.html#3.2-tune.http.maxhdr

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.