tgoop.com/Code_Crafters/844
Last Update:
انتیتی (entity) و انکدینگ (encoding)
میدانیم که http روزانه میلیاردها آبجکت از هر نوع اطلاعاتی (مانند عکس، فیلم، متن و...) را جابجا میکند؛
اما ارسال پیام برای ما کافی نیست!
ما باید مطمئن شویم که این پیامها کاملا ارسال شدهاند، identify شدهاند، استخراج و پراسس شده اند.
برای اینکه اطلاعاتمان را به شیوه صحیح ارسال کنیم، میبایستی از header های درستی استفاده کنیم.
قبل از اینکه بدانیم هدر ها کجا ست میشوند، بیایید یک نگاهی مختصر به ساختار http message داشته باشیم:
هر http message میتواند یا برای request باشد و یا برای response.
این پیامها از سه بخش تشکیل شدهاند:
۱- در این بخش ما ریسورس خود را مشخص میکنیم.
برای ریکوئست: url و host را به همراه method در این بخش ست میکنیم.
مثال:
GET google.com/random/path
برای ریسپانس: تنها جواب از سوی سرور را در اینجا ست میکنیم
404 google.com/random/path
۲- در این بخش هدرهای خود را ست میکنیم. هدر ها برای ریکوئست و ریسپانس گاهی متفاوت است.
برای ریکوئست، میگوییم: «من انتظار یک ایمیج را دارم» اما برای ریسپانس میگوییم «در این پیام برایت یک ایمیج را فرستادم».
۳- این بخش، بخش بدنه است. تنها در ریسپانس، در این بخش اطلاعات را میگذاریم.
* درواقع http headers یک plain text از هدر ها هستند که در لایه دوم http message قرار میگیرند.
در این بخش به مرور چند هدر معروف میپردازیم:
1- Content-type:
این هدر، نشان میدهد که شما در بخش body، انتظار چه اطلاعاتی را خواهید داشت.
برای مثال، هنگامی که شما یک متن را باز میکنید، content-type از سمت سرور مقصد به مقدار text/plain ست میشود.
2- content length
پیش از اینکه body را از یک http message استخراج کنیم، میبایستی بدانیم که چه انتظاری از بدنه خواهیم داشت.
برای مثال انتظار یک عکس با حجم ۲ مگابایت را داریم. پس در این هدر، ما حجم content را ست میکنیم.
3- content encoding
گاهی برای امنیت بیشتر و یا کم کردن حجم، ما اطلاعات یک پیام را encode میکنیم. در این هدر، به مقصد میفهمانیم که پیام از قبل با این الگوریتم encode شده، پس برای خواندن آن، آن را decode کنید.
#http_guideline
@code_crafters
BY CodeCrafters
Share with your friend now:
tgoop.com/Code_Crafters/844