>> 演讲嘉宾：让我们来谈谈另一个 protocol--超文本传输
协议或HTTP。
因此，我们已经谈了IP 和TCP在以前的视频。
而这些都是协议 这决定如何信息
从移动机器对机器和 因程序或服务
通过互联网提供服务，通过 这个网络路由器和机器。
>> 但是，这通常不是 整个画面，对不对？
通常，当我们送 信息，节目
当数据是itself-- 接收，比方说，例如，
在通过TCP端口25或电子邮件 通过端口80的网页请求，
有通常的规则体系存在 处理我刚刚收到。
和HTTP是一个例子 只是这样的协议。
>> HTTP是唯一 应用层协议
我们要去谈。
但它是另一组 规则支配如何
信息将被发送 并通过互联网处理。
特别是，HTTP 指定究竟如何
其中一个必须做出的请求 一个网页，究竟如何
一个服务器，一个机 承载网页，
提供信息 回馈客户。
>> 所以这个协议不 其实有什么
做怎样的信息 从A点移动
到B点。这真的 规则系统
for--它基本上规则 接合用于与网页的工作，
类似的，当有人 波他们的手在你，
你应该挥手。
这是形式的 传统的人类协议。
HTTP协议只是说，如果 要申请一个网络
页面上，确保您的格式如下 像this--有点像格式化
商业信函等。
和响应将同样 来根据这个协议。
还有其他 应用层协议
我们不打算 视频中谈论。
但是，这其中就包括像 文件传输协议，
简单邮件传输协议 发送电​​子邮件，数据发布
服务，远程桌面 协议，RDP，这
如果你想远程访问使用 您的计算机从另一台计算机，
XMPP，这是经常 被称为Jabber的，或聊天，
所以这是协议 使用聊天服务。
还有许多，许多，许多人。
>> 所以每次你使用时间 一种服务，该服务
期待信息 要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确定。
你要接收HTML。
然后这里的 您请求HTML。
>> 但有时我们的要求不 相当按计划总是去。
我能看看你的cats.html页？
好吧，如果他们说什么，我们 没有cats.html页，
这似乎是一种不现实的 因为他们是cats.com。
你会认为他们将不得不cats.html。
但确定。
因此，这是排序 传统的人际交往
我们现在已经与cats.com。
请问该怎么翻译？
>> 这可能是一些熟悉的东西给你。
我们的要求跟以前一样， 除了没有得到斜线
我们现在越来越cats.html。
所以，现在基本上什么这整个 请求要说的是，请给我
www.cats.com/cats.html。
因此主机和中间 该顶线的一部分
有指示准确 哪一页我要求。
但是cats.com在这种情况下是不会 要能够积极回应。
他们不知道我们在说什么。
所以，这是你可能有 看到before-- HTTP 1.1 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行，是 可能是相当沉默。
你可能从未见过 一个页面响应200 OK。
你刚才得到的页面。
它不象一个404错误， 这通常是很清楚的。
大家平时看到的，它说404。
>> 因此，让我们来谈谈一些 这些状态码可能。
再次，服务器时 回应我们，他们是
要响应HTTP版本状态。
通常是HTTP / 1.1。
这些是什么状态码会是什么？
好了，我们可能会取得成功。
所以在成功的品类，我们 可能会得到200码的文字确定。
这是什么意思？
好了，一切都很好。
你犯了一个有效的请求。
这里有一个有效的响应。
我能救 正是你想要的。
>> 有时候，你可能会得到其他的东西 你不会马上通知
但有些失败。
他们是所谓的重定向。
有两种最常见的在这里。
301动了Permanently-- 这是什么基本上意味着
是页是现在在新的位置。
这将生活永远存在。
和大多数浏览器将 自动重定向。
所以，你永远不会真正看到 301，或者，除非你是
使用真正走出过期 浏览器，可能的话，
因为301响应的一部分 圆点，圆点，301响应点。
它还告诉你在哪里新的页面。
所以大多数的浏览器将 只是重新定位你在那里，
假设你想去那里。
>> 有时你也得302找到。
而这一次你真的 可能还会看到一些偶尔为之。
有时，页面之间移动暂时的。
所以它不会被建成 请求告诉浏览器
永久改变任何时间 它认为该请求你
令将其更改为别的东西。
所以，你可能会看到302 研究发现，基本上
说这页住在别处。
但它不会 住在这里，直到永远。
这最终将可能会去 回到你认为它是。
>> 然后你会得到的东西 像客户端错误。
因此，这些都是那些你已经 可能看到，现在。
你可能没见过 200到299或300秒，
但你可能 熟悉400S。
而这正是我们将讨论 大约在一秒钟，500秒为好。
>> 您可能会看到401未授权。
通常，这意味着你 试图访问一个页面，
但你还没有登录。
所以，你试着去一些 配置文件什么的在Facebook
或者你尝试和访问 some--你在工作。
你试图访问的东西 你的工作的互联网上，
但你不能登录。
你看不到的页面。
你可能会得到一个401未经授权， 这意味着我们可能
将能满足这个要求， 但首先你需要登录这样做。
>> 相反，你可能会得到403 紫禁城，它并没有真正是
如果你登录或没有关系。
这个请求是不允许的。
资源存在于服务器上。
但是，你不能访问它。
这通常是内部文件 活服务器出于各种原因在
但并不意在 从外界访问，
所以他们是被禁止的。
他们生活在那里。
我不是说我不能找到它。
但我说我不能给你。
它并不重要，如果无所谓 你或没有登录。
然后当然， 很常见的404未找​​到。
该文件不存在于服务器上。
我想，以满足 你的要求，但我不能。
>> 也有时会看到服务器 错误，最常见的一般
是500内部服务器错误，这 实际上并没有告诉你什么
在所有关于什么错误。
但它实际上不是你做 一个错误在你的要求。
它实际上是服务器故障 对请求提供某种方式。
所以500是一般的反应。
>> 您还可以看到一些东西 像服务不可用，
我相信这是代码503。
和网关Timeout--如果 你曾经有一个网页只是
坐在那里装， 载荷和载荷
你永远不知道，如果它要 负载，然后最终它只是says--
只是放弃。
这是一个504网关超时。
服务器要 执行您的要求，
但出事了 在服务器side--
不是你side--到 导致该是一个问题。
现在，我们可以在这里结束的故事， 但实际上，我现在要做的
是我要去开拓 我的浏览器，并告诉你
你怎么可能能看到 一些状态码
即使你通常不会看到它们。
而我们要做的，通过采取 看看一些开发工具。
>> 好吧所以我在这里 现在在我的浏览器窗口。
我想学一点点 更多有关这些HTTP请求。
我怎么知道 - 当然，我们知道，如果一个 页面goes--出问题的时候，
我们得到了404。
我们都看到了。
我们并不需要以说明。
但是，有一些其他的？
而我们怎么能看到 在行动中，这些要求？
>> 我要去所以第一件事情 要做的就是打开开发人员工具。
因此，开发工具是建立 到最现代的浏览器
并让我们看到的东西 我们不以其他方式
see--一些额外的信息排序 下面我们的网络传输
要求。
我使用谷歌浏览器在这里。
并开放开发工具 在浏览器，您只需点击F-12，
而这将打开 它挂在侧。
当我输入的要求，我会放大 因此，我们可以看到是怎么回事。
但我会做我的浏览器 酒吧is--我会放大在这里 -
我会主动要求到www.google.com。
我们都可能发 这一要求之前。
我要敲回车。
>> 现在，在这里我开发 工具，我选择了网络选项卡。
而且你发现很多东西在这里。
看看these-- 200行，200行，一些 状态代码上来。
我不知道为什么我得到302找到。
我不知道我看到那一个。
但基本上注意到，漂亮 多，我的谷歌request--方面
我做了一个非常简单的 要求谷歌的网页。
和在过程中 提供我的要求，
谷歌显然已经做了很多 代表我的其他请求。
>> 但是我做了谷歌的GET请求 页面，我得到了很多的200 OKS。
我没有看到200 OK的 我的屏幕，但我发现
大量的请求已作出的。
还有一个，我敢 肯定是去工作
is--对于那些你们谁 真的是老学校，
你可能知道Facebook 不总是在Facebook.com。
在它的早期它是 在wwww.thefacebook.com。
他们显然无法得到接入 到Facebook.com很长一段时间。
>> 所以我很期待 这里是获取信息。
我们会看到，如果这个盘子。
我很期待在这里 是为了获取信息
称Facebook已被永久移动 从thefacebook.com到Facebook.com。
所以，我期待的地方 靠近我请求顶部
在我的开发工具 获得301通知
称Facebook已被永久移动。
同样，我不会看301 在我的浏览器屏幕。
而且因为它是一个301， 这是一个永久转会。
我的浏览器，在于 这是一个现代的浏览器，
很可能会重定向 我Facebook.com反正。
但是，让我们看看会发生什么。
>> 现在我要去 去thefacebook.com。
而且是的，那里是正确的顶部。
它走了，但它在那里。
让我在这里滚动起来。
就在这里在顶部。
我提出申请，要求thefacebook.com， 而我得到的回应
这个页面已被永久移动。
在这里，那么307 内部重定向。
所以这是有实际 让我感动的更
熟悉www.facebook.com。
>> 因此，这些响应代码做的还是 发生，即使我们没有看到他们。
我不打算 示401,403，404，
因为你可能已经看到了 那些在不同的点。
500，我也只是 一种of--我们会得到幸运
如果有一个5​​00，因为我们不知道是什么 服务器目前在任何地方。
但是，这些代码做 存在，并且有一种方法
访问他们，即使我们不这样做 看到他们亲眼我们的系统上。
我是道格·劳埃德。
这是CS50。