بخش های اصلی

آموزش HTTP

HTTP – پارامترها

در این فصل تعدادی از پارامترهای مهم پروتکل HTTP و شکل دستوری آن ها (روش استفاده ی آن ها در ارتباط)، لیست شده اند. برای مثال، فرمتِ تاریخ، فرمتِ URL و ... . این مطالب کمک می کنن تا بتوانید هنگام نوشتن برنامه های سمت کلاینت یا سرورِ HTTP، پیام های درخواست و پاسخ تان را بسازین. آموزش کامل طرز استفاده از این پارامترها را در بخش های بعدی، حین یادگیریِ ساختار پیامِ درخواست و پاسخ های HTTP ، فرا خواهید گرفت.

نسخه ی HTTP

HTTP برای نشان دادن نسخه های پروتکل از شمایِ شماره گذاریِ <major>.<minor> استفاده می کنه. نسخه ی پیامِ HTTP، بصورت زیر، با یک فیلدِ HTTP-Version در خط اول، مشخص شده. در ادامه شکل عمومیِ دستوری برای تعیین شماره ی نسخه ی HTTP را مشاهده می کنین:

HTTP-Version   = "HTTP" "/" 1*DIGIT "." 1*DIGIT

مثال

HTTP/1.0

or

HTTP/1.1

شناساگرهای منابع متحدالشکل (Uniform Resource Identifiers)

شناساگرهای منبع متحدالشکل (URI)، فرمت ساده ای دارن، شامل رشته های نامِ حساس به حروف هستن و ... و یک منبع را شناسایی می کنن، مثل وب سایت، وب سرویس و ... . شکل عمومیِ دستوریِ URI  که در HTTP  به کار میره بصورت زیرِه:

URI = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]

در این دستور، اگه port خالی باشه یا مقداری بهش داده نشه، بصورت پیش فرض مقدارِ port 80 برای آن درنظر گرفته میشه. اگه به abs_path مقداری داده نشه معادل با “/” در نظر گرفته میشه. بقیه ی کاراکترها، بجز آن هایی که جزء مجموعه های رزرو شده و ناامن هستن، معادل با نوع رمزگشاییِ “”%” HEX HEX” هستن.

مثال

سه URI زیر با هم معادل اند:

http://abc.com:80/~smith/home.html
http://ABC.com/%7Esmith/home.html
http://ABC.com:/%7esmith/home.html

فرمت های تاریخ/زمان

تمام تاریخ/زمان های HTTP، بدون استثنا باید با فرمت گرینویچ (زمانِ (GMT)) نمایش داده میشن. برنامه های HTTP، امکان استفاده از هرکدام از سه نوع نمایشِ تاریخ/زمان زیر را میسر می کنن:

Sun, 06 Nov 1994 08:49:37 GMT  ; RFC 822, updated by RFC 1123
Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
Sun Nov  6 08:49:37 1994       ; ANSI C's asctime() format

مجموعه کاراکترها

می توانیم از مجموعه کاراکترها برای تعیین مجموعه کاراکتری که کلاینت ترجیح میده استفاده کنیم. می توان چند مجموعه کاراکتر لیست کرد که با کاما از هم جدا شده اند. اگه مقداری تعریف نشده باشه، US-ASCII بعنوان مقدار پیش فرض در نظر گرفته میشه.

مثال

در ادامه، مجموعه کاراکترهای معتبر را مشاهده می کنین:

US-ASCII

or

ISO-8859-1

or 

ISO-8859-7

کدگذاری محتوا

مقدارِ کدگذاری محتوا، نشان میده که قبل از پاس دادن محتوا به شبکه، از یک الگوریتم کدگذاری برای کدگذاری آن استفاده شده. کدگذاری های محتوا، در درجه ی اول برای فشرده کردن اسناد یا برای انجام انتقالی عالی، بدون از دست دادن شناساگر، بکار میرن.

تمام مقادیر کدگذاری محتوا حساس به حروف هستن. HTTP/1.1 از مقادیرِ content-coding (کدگذاری محتوا)، در فیلد سرآیند های Accept-Encoding و Content-Encoding که در بخش های بعدی با آن ها آشنا خواهیم شد، استفاده می کنه.

مثال

در ادامه، شَمای کدگذاری معتبر آورده شده:

Accept-encoding: gzip

or

Accept-encoding: compress

or 

Accept-encoding: deflate

انواع رسانه (Media)

HTTP جهت فراهم کردن انواع داده های باز و قابل توسعه و فراهم کردن انواع مذاکره ها (negotiation)، از انواع رسانه های اینترنت در فیلدهای سرآیندِ Content-Type (نوع محتوا)  و Accept (پذیرش) استفاده می کنه. تمام مقادیرِ Media-Type (نوع رسانه) توسط آیانا (IANA) ثبت شده اند. شکل دستوری عمومی برای تعریف نوعِ media (رسانه)  به شکل زیرِه:

media-type     = type "/" subtype *( ";" parameter )

نام خصیصه های (attributes)، type، subtype و parameter حساس به حروف هستن.

مثال

Accept: image/gif

تگ های Language (زبان)

HTTP، داخل فیلد های Accept-Language و Content-Language از تگ های Language استفاده می کنه. تگِ Language از یک یا دو بخش تشکیل شده: یک تگِ language اصلی و یک سریِ خالیِ احتمالی از subtags (زیرتگ ها):

language-tag  = primary-tag *( "-" subtag )

نباید داخل تگ از فاصله (white spaces) استفاده کرد و تمام تگ ها حساس به حروف هستن.

مثال

تگ های نمونه شامل:

en, en-US, en-cockney, i-cherokee, x-pig-latin

هر two-letter primary-tag (تگ اصلیِ دو حرفی) یک مخففِ زبانیِ ISO-639 است و هر زیر تگِ اولیه ی دو حرفی، یک کد کشورِ ISO-3166 است.

مبحث آموزشی

آموزش HTTP

HTTP

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

تبلیغات

دنبال کردن تلگرام کانال سافت اسکیل

https://telegram.me/softskill_ir

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد