আকর্ষণীয় প্রশ্ন। response headers
আইআইএস থেকে অপসারণের সমস্ত পদ্ধতিগুলি শিরোনাম Allow
এবং Public
শিরোলেখীদের পক্ষে কাজ করে না বলে মনে হয় , একটি OPTIONS
অনুরোধ সর্বদা ফিরে আসে:
Allow: OPTIONS, TRACE, GET, HEAD, POST
Public: OPTIONS, TRACE, GET, HEAD, POST
সার্ভার আসলে যা অনুমতি দেয় তা নির্বিশেষে।
আইআইএস-এর সমস্ত অনুরোধগুলি মডিউল দ্বারা পরিচালিত হয়, OPTIONS
অনুরোধগুলি হ্যান্ডেল করা হয় ProtocolSupportModule
যা প্রয়োজনীয় নয় এবং এটি বেশ বোবা বলে মনে হচ্ছে।
যদি আমরা সেই মডিউলটি সরিয়ে ফেলি, সার্ভার আর বিকল্পগুলির অনুরোধের সাড়া দেয় না, যা আপনি এখনও সমর্থন করতে চান, সুতরাং সেগুলির উত্তর দেওয়ার জন্য আমাদের আরও একটি মডিউল ব্যবহার করতে হবে।
খুলুন:
%SystemRoot%\System32\inetsrv\config\applicationHost.config
এবং OPTIONSVerbHandler
সেই লাইনের মন্তব্যের জন্য অনুসন্ধান করুন এবং আপনি এটির উপরে থাকাকালীন উপরেরটিও ( TRACEVerbHandler
)। এখন একটি নতুন নোড যুক্ত করুন:
<add name="MyOPTIONSVerbHandler" path="*" verb="OPTIONS" modules="StaticFileModule" requireAccess="None" />
পুরো ব্লকটি দেখতে এইরকম হওয়া উচিত:
<!-- <add name="TRACEVerbHandler" path="*" verb="TRACE" modules="ProtocolSupportModule" requireAccess="None" />
<add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="ProtocolSupportModule" requireAccess="None" /> -->
<add name="MyOPTIONSVerbHandler" path="*" verb="OPTIONS" modules="StaticFileModule" requireAccess="None" />
এখন স্ট্যাটিকফাইমডিউড OPTIONS
অনুরোধগুলি প্রক্রিয়া করবে তবে এটি কোনও সামগ্রী ফেরত দেবে না।
আপনি যদি এখন OPTIONS
সার্ভারে একটি অনুরোধ করেন তবে আপনি একটিও শিরোনাম পাবেন Allow
না Public
, আপনি এগুলিকে সহজেই ওয়েবকনফাইগে যুক্ত করতে পারেন
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Allow" value="GET,POST,HEAD" />
<add name="Public" value="GET,POST,HEAD" />
</customHeaders>
</httpProtocol>
</system.webServer>
এখন আপনার OPTIONS
অনুরোধগুলি যেমন প্রয়োজন তেমন কাজ করে তবে এই অতিরিক্ত শিরোনামগুলি এমন কোনও GET
বা POST
অনুরোধের সাথে প্রেরণ করা হয় যা আমার মনে হয় এখনও বৈধ HTTP।
আপনি যদি OPTIONS
অনুরোধগুলির জন্য কেবল এই শিরোলেখ ব্যবহার করতে চান তবে আপনি একটি সহজ HTTP মডিউল লিখতে পারেন যা এই শিরোনামগুলি সেট করে এবং আমি উপরে ব্যবহৃত স্ট্যাটিকফাইলে মডুলের পরিবর্তে এটি ব্যবহার করতে পারি।