SPEAKER: اجازه دهید در مورد یکی دیگر از صحبت انتقال ابرمتن protocol-- پروتکل، یا HTTP. بنابراین ما در مورد IP صحبت کردیم و TCP در فیلم های قبلی است. و کسانی که پروتکل ها که دیکته کند که چگونه این اطلاعات را حرکت از ماشین به ماشین و از برنامه به برنامه و یا خدمات به سرویس از طریق اینترنت، از طریق این شبکه از روتر و ماشین آلات. اما معمولا نمی کل تصویر، درست است؟ معمولا هنگامی که ما ارسال اطلاعات، برنامه itself-- هنگامی که داده ها دریافت، می گویند، برای مثال، در ایمیل از طریق پورت 25 TCP یا درخواست صفحه وب از طریق پورت 80، معمولا یک سیستم از قوانین وجود دارد برای پردازش آنچه که من فقط دریافت کرده ام. و HTTP برای مثال است تنها یک پروتکل. HTTP تنها است نرم افزار پروتکل لایه که ما قصد داریم به بحث در مورد. اما یکی دیگر از مجموعه است قوانین دیکته چگونه اطلاعات منتقل می شود و پردازش از طریق اینترنت. به طور خاص، HTTP مشخص دقیقا چگونه باید یک درخواست برای ایجاد یک صفحه وب و دقیقا چگونه سرور، یک ماشین که میزبان صفحات وب، ارائه که اطلاعات به مشتریان عقب. بنابراین این پروتکل نیست در واقع هر چیزی برای انجام با اطلاعات حرکت از نقطه A به نقطه B. این واقعا از نظام قوانین for-- آن را اساسا قوانین تعامل برای کار با یک صفحه وب، به زمانی که کسی امواج دست خود را در شما، شما قرار است به تکان. این نوع یک است پروتکل های معمولی انسان است. پروتکل HTTP فقط می گوید، اگر شما می خواهید برای درخواست یک وب صفحه، مطمئن شوید که به نظر می رسد خود را با فرمت مانند this-- نوع مانند قالب بندی نامه کسب و کار، به عنوان مثال. و پاسخ به طور مشابه خواهد شد با توجه به این پروتکل آمده است. دیگر وجود دارد پروتکل های لایه برنامه که ما در حال رفتن به صحبت در مورد فیلم. اما این شامل چیزهایی مانند پروتکل انتقال فایل، پروتکل ساده انتقال ایمیل برای ارسال ایمیل، توزیع داده خدمات، از راه دور دسکتاپ پروتکل، RDP، که استفاده شده است اگر شما می خواهید از راه دور دسترسی کامپیوتر خود را از یک کامپیوتر دیگر، XMPP، که اغلب به شناخته شده به عنوان پرحرفی و یا چت، به طوری که این پروتکل است برای استفاده از خدمات چت. و بسیاری از، بسیاری، بسیاری دیگر وجود دارد. بنابراین هر بار که شما با استفاده از خدمات، خدمات انتظار اطلاعات به received-- شود یک درخواست به received-- در یک فرمت خاص بسیار و لازم است اطلاعات بازگشت در یک قالب بسیار خاص نیز هست. بنابراین اجازه دهید به بازگشت به تصویر ما از ما که مایل به صحبت به اینترنت است. بنابراین ما خوشحال هستید، و ما می خواهیم برای رفتن به cats.com، درست است؟ بنابراین اگر ما فقط صحبت کردن به cats.com، ما ممکن است چیزی شبیه سلام، می توانید صفحه اصلی خود را مشاهده کنم؟ و احتمالا cats.com پاسخ می دهند، آره، حتما. در اینجا شما بروید. به طوری که یک نوع انسان است از درخواست و پاسخ. چه می کند که شبیه در HTTP؟ خوب، آن را در واقع نوع از ترجمه بسیار پاک به چیزی شبیه به این. ما ممکن است بگویید GET / HTTP / 1.1 از cats.com میزبان. بنابراین اساسا آنچه من در اینجا انجام است درخواست برای www.cats.com/ صفحه وب است. ما معمولا حذف بریده بریده امروزه، اما که فقط معنی یک پیام خصوصی به cats.com است. اوه، و توسط راه، من قصد دارم با استفاده از نسخه HTTP به 1.1 برای برقراری ارتباط با شما. که مرتب سازی بر اساس مشابه گفت، مانند، توسط راه، من قصد دارم به زبان باشد در فرانسه، و یا توسط راه، من قصد دارم به صحبت کردن به زبان انگلیسی. که فقط فرمت از پروتکل است. آن را نیز 1.0 است که معمولا استفاده می شود نیست. بنابراین من صحبت کردن HTTP 1.1، و من می www.cats.com/ دوست. لطفا که برای من. و پس از آن دیگر اطلاعات وجود دارد، too-- نقطه، نقطه، نقطه وجود دارد، که اطلاعاتی است که درباره که شما می شوند بنابراین cats.com می دانم که در آن به ارسال آن. اما این دو هستند مرتب کردن بر اساس بخش های حیاتی در آغاز یک HTTP request-- درست مثل زمانی که شما شروع به یک نامه به شما می گویند، عزیزم، خالی است. این در روح بسیار شبیه به آن است. و اگر cats.com است که به می گویند، آه، مطمئن شوید، در اینجا شما بروید. آنها ممکن است مانند پاسخ this-- من هم پاسخ می دهد. من هم HTTP 1.1 صحبت می کنند. درخواست شما مورد تایید است، 200 OK. آنچه شما در مورد هستید دریافت HTML و پس از آن نقطه، نقطه، نقطه برخی از اطلاعات اضافی. و در پایین خیلی از درخواست است که در واقع HTML، زبان نشانه گذاری است، محتوای صفحه cats.com است. بنابراین HTTP / 1.1-- من تصدیق خود را درخواست از طریق HTTP 1.1 پذیرفته شد. درخواست خود را مورد تایید قرار گرفت. من می توانم شما آنچه شما می خواهید 200 OK را. شما در مورد دریافت HTML است. و پس از آن در اینجا HTML که مورد درخواست شما. اما گاهی اوقات درخواست های ما نیست همیشه کاملا با توجه به طرح. آیا من می توانم صفحه cats.html خود را ببینید؟ خوب، اگر آنها می گویند، ما یک صفحه cats.html ندارد، که به نظر می رسد نوع غیر واقعی چرا که آنها cats.com است. شما می خواهم فکر می کنم آنها cats.html داشته باشد. اما OK. بنابراین این نوع است تعامل انسان معمولی ما در حال حاضر با cats.com بود. چگونه است که ترجمه؟ این ممکن است چیزی برای شما آشنا. درخواست ما نگاه دقیقا همان است، جز به جای گرفتن بریده بریده ما در حال حاضر cats.html. بنابراین در حال حاضر آنچه اساسا این کل درخواست گفته است لطفا به من می دهد www.cats.com/cats.html. بنابراین میزبان و وسط بخشی از این خط بالا نشان می دهد دقیقا وجود دارد چه صفحه برای خواهم. اما cats.com در این مورد است که نمی قادر به پاسخ مثبت. آنها نمی دانند که ما در حال صحبت کردن در مورد. و بنابراین این چیزی شما ممکن است است HTTP 1.1 before-- دیده 404 یافت نشد. من می توانم آنچه را پیدا کند شما برای درخواست شد. به هر حال، من قصد دارم به شما بدهد برخی از HTML، HTML و معمولا که محتوای برخی از 404 صفحه است. و در مورد cats.com، آن را احتمالا برخی از گربه ناز در یک سبد با غمگین 404 چهره در کنار آنها، دلیل این که شما در حال رفتن به غمگین هنگامی که شما صفحه نیست که شما به دنبال. این نوع از اصول اولیه چه خبر پروتکل، پروتکل HTTP درخواست شباهت داشتن. آنها واقعا شبیه به ما یک تعامل مشابه در کنوانسیون فقط انسان درخواست چیزی و گرفتن آن را به عقب و یا نوشتن یک نامه و در انتظار یک پاسخ نامه را در یک فرمت خاص است. که تقریبا چه HTTP فقط canonicalizing برای تمام دستگاه هایی که مایل به دسترسی به صفحات وب، انتقال ابرمتن. بنابراین یک خط از فرم، این روش نسخه درخواست HTTP هدف، یک خط درخواست HTTP نامیده می شود. آن را معمولا اولین چیزی است که انتقال به عنوان بخشی از یک درخواست HTTP و یا اگر شما برای درخواست HTTP. این نوع مانند، به من گفت، گفت: عزیز، خالی در بالای نامه خود را. آنها می دانند که شما آنها را به نوشتن یک نامه. پس این است که بسیار شبیه به گفت، من می دانم که آنها در حال ساخت یک درخواست HTTP و این فرمت خاص است آنها برای درخواست. نسخه HTTP است که احتمالا همیشه برای رفتن به HTTP / 1/1. 1.0 نیز وجود دارد اما نمی باشد واقعا استفاده می شود نیست. به منظور استفاده از CS50، GET است که احتمالا همیشه آنچه را که شما برای رفتن به با استفاده از زمانی که شما در واقع هستید ساخت درخواست HTTP مستقیم. اما POST گزینه دیگری است که ما است رفتن به مورد در حال حاضر صحبت کنید. و پس از آن درخواست هدف است چه صفحه بر روی سرور میزبان شما می خواهم برای به دست آوردن. همانطور که گفتم، که نام میزبان یک خط جداگانه است، معمولا خط دوم از درخواست به طور کلی. و به این ترتیب در کنار هم، میزبان نام و هدف درخواست مشخص کردن یک خاص منابع که در پی. در مثال ما 404 ثانیه پیش، من پرسیدن دوباره برای www.cats.com، cats.com بودن میزبان. و در خط درخواست من، گفتم /cats.html. که هدف درخواست من بود. بنابراین به طور کلی من برای درخواست شد مطالب و یا منابع واقع در www.cats.com/cats.html. و سپس بر روی که آیا بر اساس منابع وجود دارد و اینکه آیا سرور می تواند ارائه منابع طبق مشتری درخواست، شما ممکن است کدهای وضعیت های مختلف است. برخی از این کدهای وضعیت شما را دیده ام زیرا آنها بخشی از پاسخ است. برخی از آنها، 200 OK، هستند احتمالا بسیار سکوت. شما احتمالا هرگز دیده می شود صفحه پاسخ 200 OK. شما فقط صفحه. این مانند یک خطای 404 نیست، که است که معمولا بسیار روشن است. شما معمولا دید که آن را می گوید 404. بنابراین اجازه دهید در مورد چیزی است که برخی صحبت از آن کدهای وضعیت ممکن است. باز هم، زمانی که سرور پاسخ به ما، آنها رفتن به پاسخ HTTP وضعیت نسخه. معمولا HTTP / 1.1. این کدهای وضعیت رفتن به چیست؟ خب، ما ممکن است یک موفقیت است. بنابراین در رده موفقیت، ما ممکن است کد 200 با OK متن دریافت کنید. این یعنی چی؟ خوب، همه چیز خوب است. شما یک درخواست معتبر ساخته شده است. در اینجا پاسخ معتبری است. من قادر به ارائه شد دقیقا آنچه شما می خواهید. گاهی اوقات شما ممکن چیزهای دیگر را دریافت که شما متوجه خواهد شد که حق دور اما تا حدودی شکست. آنها به نام تاییدیه است. دو شایع در اینجا وجود دارد. 301 Permanently-- منتقل چه اساسا این بدین معنی است که صفحه در حال حاضر در یک مکان جدید. آن را برای همیشه وجود دارد زندگی می کنند. و اکثر مرورگرها به طور خودکار تغییر مسیر شما. بنابراین شما هرگز واقعا 301، یا، مگر اینکه شما با استفاده از یک واقعا خارج از تاریخ مرورگر، احتمالا، زیرا واکنش 301 بخشی از نقطه، نقطه، نقطه از پاسخ 301. همچنین شما می گوید که در آن صفحه جدید است. و به این ترتیب اکثر مرورگرها فقط شما تغییر مسیر وجود دارد، فرض کنید که شما می خواهید برای رفتن وجود دارد. گاهی اوقات شما همچنین می خواهید 302 در بر داشت. و این یکی شما در واقع ممکن است هنوز هم گاهی اوقات ببینید. گاهی اوقات صفحات به طور موقت حرکت می کند. طوری که آن را نه به ساخته شود درخواست گفتن مرورگر هر زمان به طور دائم تغییر آن را درخواست می بیند که شما را به تغییر آن به چیز دیگری. بنابراین شما ممکن است 302 را ببینید یافت، که اساسا می گوید این صفحه در جایی دیگر زندگی می کند. اما آن را به رفتن نیست وجود دارد زندگی برای همیشه. آن را در نهایت احتمالا به به جایی که شما فکر می کنم آن است. پس از آن شما همه چیز مانند اشتباهات مشتری. بنابراین این آنهایی که شما ام احتمالا دیده می شود، در حال حاضر. شما احتمالا دیده اند، نیست 200S یا 300S، اما شما احتمالا آشنا با 400s. و این چیزی است که ما صحبت در مورد در یک ثانیه، 500S است. شما ممکن است غیر مجاز 401 را مشاهده کنید. معمولا این بدان معناست که شما سعی در دسترسی به یک صفحه، اما شما هنوز وارد نشده اید. بنابراین شما سعی می کنید و رفتن به برخی از مشخصات و یا چیزی در فیس بوک و یا شما سعی می کنید و دسترسی some-- شما در محل کار هستید. شما در حال تلاش برای دسترسی به چیزی در اینترنت کار خود را، اما شما هنوز وارد نشده اید. شما نمی توانید صفحه را ببینید. شما ممکن است یک 401 غیر مجاز را دریافت کنید، که بدان معنی است که ما احتمالا قادر خواهد بود برای برآوردن این درخواست، اما در ابتدا شما نیاز به ورود به انجام این کار. در مقابل، شما ممکن است 403 ممنوع است، که است که آن را واقعا نمی مهم نیست اگر شما وارد سایت شوید یا نه. این درخواست مجاز نمی باشد. منابع بر روی سرور وجود دارد. اما شما امکان پذیر نیست به آن دسترسی داشته باشید. این فایل ها معمولا داخلی این است که زندگی بر روی سرور به دلایل مختلف اما نظر گرفته نمی شود دیده از جهان خارج، و به طوری که آنها ممنوع است. آنها زندگی می کنند. من ادعا نمی کنم من می توانم آن را پیدا کند. اما من گفت: من نمی توانم آن را به شما بدهد. و آن را اگر مهم نیست شما در حال شده باشد یا نشده وارد سایت شوید. و پس از آن البته، بسیار معمول 404 یافت نشد. فایل بر روی سرور وجود ندارد. من می خواهم برای برآوردن درخواست خود را، اما من نمی توانم. شما همچنین گاهی اوقات سرور را ببینید به طور کلی اشتباهات، رایج ترین بودن 500 خطای داخلی سرور که در واقع شما هر چیزی را نمی گوید همه چیز در مورد چه اشتباه رفته است. اما آن را در واقع شما ساخت یک اشتباه در درخواست شما. این در واقع سرور عدم برای ارائه به درخواست به نحوی. بنابراین 500 پاسخ کلی است. شما همچنین می خواهید چیزی را ببینید مانند سرویس در دسترس نیست، که به اعتقاد من کد 503 است. و دروازه Timeout-- اگر شما تا به حال یک صفحه تا به حال فقط نشستن وجود دارد و در حال بارگذاری بارگیری و بارگذاری و شما هیچ وقت نمی دانید اگر آن را به بار و سپس در نهایت آن فقط says-- فقط می دهد تا. که دروازه اتمام مهلت 504 است. سرور می خواستم به اجرای درخواست شما، اما چیزی را اشتباه رفت در side-- سرور نه side-- خود را به باعث شود که به یک مشکل. در حال حاضر، ما می تواند داستان در اینجا به پایان، اما آنچه من در واقع رفتن به اکنون است من قصد دارم برای باز کردن مرورگر و من به شما نشان دهد چگونه شما ممکن است قادر به دیدن برخی از این کدهای وضعیت حتی اگر شما به طور کلی آنها را ببینید. و ما قصد داریم برای انجام این کار با در نظر گرفتن در برخی از ابزارهای توسعه است. همه حق بنابراین من اینجا هستم در حال حاضر در پنجره مرورگر من. و من می خواهم به یاد بگیرند کمی بیشتر در مورد این درخواست های HTTP. چگونه دانید من قطعا ما می دانیم اگر یک صفحه goes-- زمانی که چیزی را اشتباه می رود، ما یک 404. ما همه را دیده ام که. ما لازم نیست برای نشان دادن که. اما آنچه برخی از آنهایی که دیگر؟ و چگونه می بینید ما این درخواست در عمل؟ بنابراین اولین چیزی که من قصد دارم به است باز کردن ابزار های برنامه نویسی. بنابراین ابزار های برنامه نویسی ساخته شده است به اکثر مرورگرهای امروزی و به ما اجازه دیدن چیزهایی که ما انجام غیر این صورت نمی see-- نوعی اضافی اطلاعات در حال زیر از وب سایت ما منتقل درخواست ها. من با استفاده از گوگل کروم است. و باز کردن Developer Tools در کروم، شما فقط ضربه F-12، و آن را برای باز کردن آن را در سمت. هنگامی که من به درخواست تایپ کنید، من زوم در بنابراین ما می توانید ببینید چه خبر است در اینجا. اما آنچه که من قصد دارم برای انجام در مرورگر نوار is-- و من بیش از here-- شما زوم در من یک درخواست به www.google.com است. ما همه احتمالا ساخته شده این درخواست قبل از. من قصد دارم به ضربه را وارد کنید. در حال حاضر، در اینجا در توسعه من ابزار، من تب شبکه انتخاب کرده اید. و شما متوجه بسیاری از مسائل است. در these-- 200 OK، 200 OK، برخی نگاه از این کدهای وضعیت آینده. من نمی دانم که چرا من گرفتن 302 یافت نشد. من نمی دانستم من که یکی را ببینید. اما اساسا متوجه است که بسیار بسیار، از نظر request-- گوگل من من ساخته شده بسیار ساده است درخواست برای صفحه گوگل. و در این فرآیند از ارائه درخواست من، گوگل ظاهرا ساخته شده بسیاری از سایر درخواست ها از طرف من. اما من یک درخواست GET برای گوگل ساخته شده صفحه و من گرفتن بسیاری از 200 OKS. من از دیدن نیست 200 OK در صفحه نمایش من، اما من گرفتن بسیاری از درخواست که ساخته شده اند. یکی که من خیلی هستم مطمئن است که به کار is-- برای کسانی از شما که واقعا قدیمی مدرسه، شما ممکن است بدانید که فیس بوک همیشه در Facebook.com. در روزهای اولیه آن شد در wwww.thefacebook.com. آنها ظاهرا می تواند دسترسی نیست به Facebook.com برای کاملا چندی. و بنابراین، آنچه من در انتظار در اینجا است که برای دریافت اطلاعات. و خواهیم دید که اگر این تابه. آنچه که من در اینجا انتظار است برای دریافت اطلاعات که فیس بوک به طور دائم حرکت کرده است از thefacebook.com به Facebook.com. بنابراین من جایی انتظار در نزدیکی بالای درخواست من بیش از در ابزار های برنامه نویسی من برای دریافت اطلاع رسانی 301 که فیس بوک به طور دائم منتقل کرده است. باز هم، من نمی خواهد دید 301 بر روی صفحه نمایش مرورگر من. و چون آن را 301، این یک حرکت دائمی است. مرورگر من، این است که آن را یک مرورگر مدرن است، احتمالا به تغییر مسیر من به Facebook.com به هر حال. اما بیایید ببینید چه اتفاقی می افتد. و در حال حاضر من قصد دارم به رفتن به thefacebook.com. و بله، وجود دارد آن را درست در بالا است. این رفت، اما از آن وجود دارد. اجازه دهید من رفته تا اینجا. در اینجا در بالای صفحه. من ساخته شده یک درخواست به thefacebook.com، و من گرفتن یک واکنش که این صفحه تا به طور دائم منتقل شده است. و پس از آن 307 در اینجا این است تغییر مسیر داخلی. و به این ترتیب این چیزی است که در واقع من به خیلی بیشتر نقل مکان کرد www.facebook.com آشنا. بنابراین این کدهای پاسخ هنوز اتفاق می افتد، حتی اگر ما آنها را نمی بینید. من به رفتن نیست نشان 401، 403، 404، چرا که شما احتمالا دیده ام کسانی که در نقاط مختلف. و 500، من فقط می شود نوع of-- ما خوش شانس اگر یک 500 چون ما نمی دانیم که چه سرور در حال حاضر پایین در هر نقطه. اما این کد انجام وجود داشته باشد، و یک راه وجود دارد برای دسترسی به آنها حتی اگر ما نمی آنها خودشان می بینند که بر روی سیستم های ما است. من داگ لوید هستم. این CS50 است.