1 00:00:00,000 --> 00:00:01,390 2 00:00:01,390 --> 00:00:04,890 >> [音乐播放] 3 00:00:04,890 --> 00:00:10,955 4 00:00:10,955 --> 00:00:12,580 大卫·马兰:好,欢迎回来。 5 00:00:12,580 --> 00:00:13,600 这是CS50。 6 00:00:13,600 --> 00:00:15,540 这是7周结束。 7 00:00:15,540 --> 00:00:18,180 而且这是清道夫的结束 从追捕问题集4 8 00:00:18,180 --> 00:00:19,220 你可能还记得。 9 00:00:19,220 --> 00:00:21,650 恢复所有的经过 员工的JPEG文件, 10 00:00:21,650 --> 00:00:24,820 你受到挑战,如果你愿意, 拍摄自己与尽可能多的 11 00:00:24,820 --> 00:00:25,981 那些人的,你可以。 12 00:00:25,981 --> 00:00:28,480 我们得到了一大堆的意见书 在过去的几周里, 13 00:00:28,480 --> 00:00:32,980 事实上,相当多的正确中午前 今天,其中一些是那些在这里 14 00:00:32,980 --> 00:00:37,670 在这里抓到in--看起来like--安嫩伯格 大厅办公时间,一个在这里 15 00:00:37,670 --> 00:00:39,530 洛厄尔房子尼克。 16 00:00:39,530 --> 00:00:41,750 这里的拉蒙被抓的电话。 17 00:00:41,750 --> 00:00:43,870 这是在CS50的午餐。 18 00:00:43,870 --> 00:00:46,840 这是杰森Skyping与 一个更有创意的同学, 19 00:00:46,840 --> 00:00:48,280 谁给他打电话这种方式。 20 00:00:48,280 --> 00:00:49,690 我们不知道这是什么了。 21 00:00:49,690 --> 00:00:51,940 >> [笑] 22 00:00:51,940 --> 00:00:54,570 >> 大卫·马兰:但 这是值得一千兆字节。 23 00:00:54,570 --> 00:00:56,960 这里是长安,谁 硬是跑了舞台 24 00:00:56,960 --> 00:01:00,480 为了避免被偷拍1 一天,但最终被抓获。 25 00:01:00,480 --> 00:01:02,050 这是尼克。 26 00:01:02,050 --> 00:01:03,480 这是尼克。 27 00:01:03,480 --> 00:01:04,080 这是尼克。 28 00:01:04,080 --> 00:01:05,090 29 00:01:05,090 --> 00:01:07,670 这里是艾莉森下来的领域。 30 00:01:07,670 --> 00:01:11,840 和Zamyla即使被发现 在舞厅的竞争。 31 00:01:11,840 --> 00:01:14,100 因此,我们将通过 这些照片,弄清楚 32 00:01:14,100 --> 00:01:16,690 谁提交的最 最早和奖励 33 00:01:16,690 --> 00:01:20,662 1神话般的奖品,如 承诺规范。 34 00:01:20,662 --> 00:01:23,120 同时,我们也将跟进有关 被涉及的空间。 35 00:01:23,120 --> 00:01:26,860 >> 一对夫妇announcements--所以午餐 是,再次,本周五下午1:15。 36 00:01:26,860 --> 00:01:30,420 如果您想加入我们的行列, RSVP在该URL在这里。 37 00:01:30,420 --> 00:01:33,730 杰森再次出现在这里从一个 该路段的一两年 38 00:01:33,730 --> 00:01:35,510 回来,刚巧 落在万圣节。 39 00:01:35,510 --> 00:01:38,950 而事实上,他装扮成一个 南瓜特定的一年。 40 00:01:38,950 --> 00:01:42,700 如果你看这一节 他从2011年段 41 00:01:42,700 --> 00:01:46,480 8,如果你很好奇, 在CS50.tv,我觉得 42 00:01:46,480 --> 00:01:49,730 这是在这一年中 他的空气泵工作。 43 00:01:49,730 --> 00:01:52,490 >> 如果再观看 在2012年类似的部分, 44 00:01:52,490 --> 00:01:55,620 你会看到这个杰森多少瘪, 由于该诉讼已不再发挥作用, 45 00:01:55,620 --> 00:01:58,060 这仅仅是说 本周五,如果你愿意 46 00:01:58,060 --> 00:02:02,720 想刻有Daven南瓜 和加布等人,RSVP的头 47 00:02:02,720 --> 00:02:04,480 在cs50.harvard.edu地址。 48 00:02:04,480 --> 00:02:06,200 它有望成为很大的乐趣。 49 00:02:06,200 --> 00:02:08,660 Daven,我们被告知,已刻 南瓜他所有的生活。 50 00:02:08,660 --> 00:02:11,930 加布里埃尔来自巴西从未 雕刻南瓜的万圣节。 51 00:02:11,930 --> 00:02:14,700 所以在那里与他们他在学习。 52 00:02:14,700 --> 00:02:16,830 >> 研讨会,meanwhile-- 所以你很快就学会 53 00:02:16,830 --> 00:02:20,650 什么我们的期望是 最后的项目,基本上 54 00:02:20,650 --> 00:02:23,150 将归结为 设计和实现 55 00:02:23,150 --> 00:02:26,440 最感兴趣的任何项目 你,虽然经审批 56 00:02:26,440 --> 00:02:28,490 从你的教学研究员的指导。 57 00:02:28,490 --> 00:02:32,110 朝的结束 学期中,我们介绍了一些 58 00:02:32,110 --> 00:02:35,610 研讨会,这是可选的类 为首的教学研究员和哈佛 59 00:02:35,610 --> 00:02:38,570 工作人员,横跨朋友,当然 校园里,各种主题, 60 00:02:38,570 --> 00:02:41,470 相切的 课程的基本大纲 61 00:02:41,470 --> 00:02:45,590 但仍然适用的,有趣的, 不同的潜在最终的项目。 62 00:02:45,590 --> 00:02:49,530 >> 例如,第一,如果你想 注册,头部到网址那里。 63 00:02:49,530 --> 00:02:53,010 这就是阵容 今年的研讨会孤单。 64 00:02:53,010 --> 00:02:56,060 但要意识到我们有几十个 从过去几年的研讨会,所有这些 65 00:02:56,060 --> 00:02:59,774 在研讨会菜单链接 课程网站的选项。 66 00:02:59,774 --> 00:03:02,190 所以,如果你正在考虑 超越你的舒适区 67 00:03:02,190 --> 00:03:05,060 或者挑一些新的技能, 例如,编程iPhone 68 00:03:05,060 --> 00:03:08,100 与雨燕,新的语言的应用程序 苹果或Objective-C的 69 00:03:08,100 --> 00:03:11,230 或Android应用程序或编程[? CUE?] 灯泡,或任何的主题 70 00:03:11,230 --> 00:03:15,490 在这里,更由于支票 从注册页面。 71 00:03:15,490 --> 00:03:19,730 >> 所以我们开始和结束的 与看着HTTP周一。 72 00:03:19,730 --> 00:03:22,675 这么快refresher-- HTTP, 超文本传输​​协议。 73 00:03:22,675 --> 00:03:24,045 但是,这究竟意味着什么? 74 00:03:24,045 --> 00:03:26,805 75 00:03:26,805 --> 00:03:27,930 这是什么意思呢? 76 00:03:27,930 --> 00:03:30,665 77 00:03:30,665 --> 00:03:31,290 那是一只手? 78 00:03:31,290 --> 00:03:33,074 79 00:03:33,074 --> 00:03:34,740 我知道你只是摸不着头脑。 80 00:03:34,740 --> 00:03:36,400 但是你要提出HTTP是什么? 81 00:03:36,400 --> 00:03:37,792 82 00:03:37,792 --> 00:03:40,576 >> 听众:如何电脑 与[听不清]通信。 83 00:03:40,576 --> 00:03:41,517 84 00:03:41,517 --> 00:03:43,100 大卫·马兰:我错过了最后一部分。 85 00:03:43,100 --> 00:03:45,774 计算机通信with-- 86 00:03:45,774 --> 00:03:47,325 >> 听众:互联网服务器。 87 00:03:47,325 --> 00:03:50,450 大卫·马兰:Good--与互联网 服务器,并且具体地,网络服务器。 88 00:03:50,450 --> 00:03:53,533 因为回忆,有一堆 在互联网上的服务,其中的一些 89 00:03:53,533 --> 00:03:57,349 你可能使用的日常聊天的 和消息,聊天和Web和电子邮件, 90 00:03:57,349 --> 00:03:57,890 等。 91 00:03:57,890 --> 00:04:00,900 和HTTP仅仅是 协议的Web浏览器 92 00:04:00,900 --> 00:04:03,750 沟通与说话的时候 Web服务器,反之亦然。 93 00:04:03,750 --> 00:04:05,580 并且,在该模拟 人类世界可能是, 94 00:04:05,580 --> 00:04:08,730 我伸出我的手有些抖 其他人的,他(或她) 95 00:04:08,730 --> 00:04:11,970 确认通过扩展 他或她的手为好。 96 00:04:11,970 --> 00:04:13,970 所以,这只是一个协议, 一组约定。 97 00:04:13,970 --> 00:04:15,630 >> 什么确实是这些公约? 98 00:04:15,630 --> 00:04:18,640 那么,它只是归结为 发送邮件来回, 99 00:04:18,640 --> 00:04:19,770 因为我们在这里描述。 100 00:04:19,770 --> 00:04:22,520 还有的在几个方面 您可以发送这些消息。 101 00:04:22,520 --> 00:04:24,360 也许最 常见的被称为GET。 102 00:04:24,360 --> 00:04:26,510 我们会看到一个对比 这之前很长。 103 00:04:26,510 --> 00:04:30,010 >> 但是,从浏览器中的GET请求 服务器只是看起来像这样。 104 00:04:30,010 --> 00:04:32,960 这是一堆文字,它使得 里面的一个虚拟的信封。 105 00:04:32,960 --> 00:04:35,854 在该包络线的外侧 走了几个片段的细节。 106 00:04:35,854 --> 00:04:37,770 有什么需要去上 信封,可以这么说, 107 00:04:37,770 --> 00:04:41,820 为了得到这样的一个请求 这从我的Web服务器? 108 00:04:41,820 --> 00:04:42,320 是啊。 109 00:04:42,320 --> 00:04:43,270 >> 听众:您的IP地址。 110 00:04:43,270 --> 00:04:45,890 >> 大卫·马兰:我的IP地址 在From字段,可以这么说, 111 00:04:45,890 --> 00:04:49,490 并且,当然,在 接收方的IP地址。 112 00:04:49,490 --> 00:04:52,710 但在网络分组的情况下, 我们需要更多的细节 113 00:04:52,710 --> 00:04:55,254 这是不够的只是 送的包络线到一台服务器, 114 00:04:55,254 --> 00:04:57,670 因为该服务器可能 听不同类型的 115 00:04:57,670 --> 00:04:59,180 互联网流量。 116 00:04:59,180 --> 00:05:01,370 那么还有什么需要我们 除了收件人的IP? 117 00:05:01,370 --> 00:05:02,723 118 00:05:02,723 --> 00:05:03,222 是吗? 119 00:05:03,222 --> 00:05:04,241 >> 听众:是不是TCP? 120 00:05:04,241 --> 00:05:05,074 大卫·马兰:好。 121 00:05:05,074 --> 00:05:06,470 TCP-- 122 00:05:06,470 --> 00:05:07,340 >> 听众:地址。 123 00:05:07,340 --> 00:05:09,340 >> 大卫·马兰:地址, 或端口,因为它被称为。 124 00:05:09,340 --> 00:05:11,010 接近,但一TCP端口号。 125 00:05:11,010 --> 00:05:12,220 并有一堆这些。 126 00:05:12,220 --> 00:05:14,310 但肯定是最 熟悉最终应 127 00:05:14,310 --> 00:05:17,590 是80,这是默认 1用于Web流量。 128 00:05:17,590 --> 00:05:20,040 而另一位熟悉 1很快就会443, 129 00:05:20,040 --> 00:05:24,280 这是用于安全网络 交通,即开始以https网址。 130 00:05:24,280 --> 00:05:26,650 >> 原来这就是云 里面那个信封。 131 00:05:26,650 --> 00:05:29,780 并获得/只是手段,给 我的默认网页。 132 00:05:29,780 --> 00:05:32,700 给我的硬盘的根目录 开车的Web服务器上。 133 00:05:32,700 --> 00:05:36,050 并希望,在网络 服务器将,OK响应 134 00:05:36,050 --> 00:05:39,630 及数量200,这仅仅是 公约说,是的,所有的 135 00:05:39,630 --> 00:05:40,470 的确确定。 136 00:05:40,470 --> 00:05:41,680 这里的页面。 137 00:05:41,680 --> 00:05:45,510 所述网页的类型是要 是文字,但更具体地,HTML 138 00:05:45,510 --> 00:05:47,010 我们正要潜入回。 139 00:05:47,010 --> 00:05:49,877 和点点点只是 手段,这里是HTML。 140 00:05:49,877 --> 00:05:51,710 而这也正是我们 今天拿起故事, 141 00:05:51,710 --> 00:05:55,740 实际编写HTML, 超文本标记语言,它 142 00:05:55,740 --> 00:05:57,727 是语言中 网页被写入。 143 00:05:57,727 --> 00:05:59,060 这是不是一种编程语言。 144 00:05:59,060 --> 00:06:01,270 有没有功能 或循环或条件。 145 00:06:01,270 --> 00:06:03,800 它是一种标记语言, 也再次看到今天, 146 00:06:03,800 --> 00:06:07,240 它允许您指定 如何构建和风格化 147 00:06:07,240 --> 00:06:09,300 美学上的网页。 148 00:06:09,300 --> 00:06:11,470 >> 所以这是一个 我们只有真正的页面 149 00:06:11,470 --> 00:06:13,930 看了看,如果简单地说,在星期一。 150 00:06:13,930 --> 00:06:16,250 并注意到一些 显着特点。 151 00:06:16,250 --> 00:06:20,170 有很多开放的弯角 支架和关闭角度的支架。 152 00:06:20,170 --> 00:06:23,160 在这些弯角之间 括号内的话。 153 00:06:23,160 --> 00:06:25,660 我们要开始 调用这些话的标签。 154 00:06:25,660 --> 00:06:28,800 因此,开放式支架头 与封闭的支架头 155 00:06:28,800 --> 00:06:33,620 是在打开和关闭标记, 或在开始和结束标记 156 00:06:33,620 --> 00:06:37,660 HTML元素的分别, 因为我们把它叫做,称为头。 157 00:06:37,660 --> 00:06:41,760 和相同的专业术语适用 到身体中的HTML等。 158 00:06:41,760 --> 00:06:43,970 >> 什么是不错的 HTML--而事实上,我们将 159 00:06:43,970 --> 00:06:47,187 花非常少的时间就可以了, 因为你大多只是弄清楚 160 00:06:47,187 --> 00:06:49,770 什么功能它都有,当你 其实有一个具体的问题, 161 00:06:49,770 --> 00:06:52,820 以solve--你会发现, 浏览器是非常愚蠢的。 162 00:06:52,820 --> 00:06:56,450 它只是要do--没有什么不同 一个computer--你告诉它的事情。 163 00:06:56,450 --> 00:06:59,279 因此,如果你已经打开 支架HTML在最高层 164 00:06:59,279 --> 00:07:01,320 那里,基本上 只是意味着,嘿嘿,浏览器, 165 00:07:01,320 --> 00:07:04,090 这里谈到HTML编写的网页。 166 00:07:04,090 --> 00:07:06,130 >> 当它看到开放式支架 头,这只是意味着, 167 00:07:06,130 --> 00:07:10,350 哎,浏览器,来了头, 我的网页最上面的部分。 168 00:07:10,350 --> 00:07:14,192 当它看到一个封闭的支架 头,那只是意味着,嘿嘿, 169 00:07:14,192 --> 00:07:15,150 这就是它的头部。 170 00:07:15,150 --> 00:07:16,420 待机别的东西。 171 00:07:16,420 --> 00:07:18,878 和别的东西是 显然将是本体。 172 00:07:18,878 --> 00:07:22,630 而当你没有一个标签,像 你刚才你好,逗号,世界, 173 00:07:22,630 --> 00:07:26,610 这只是将是原始文本 最终显示在屏幕上。 174 00:07:26,610 --> 00:07:29,220 >> 现在,你会发现太多 这里的压痕。 175 00:07:29,220 --> 00:07:32,160 你大概可以推断出 怎么我们风格化了。 176 00:07:32,160 --> 00:07:34,850 每当我打开一个标签, 可以这么说,我缩进。 177 00:07:34,850 --> 00:07:38,540 每次我关闭 一个标签,我取消缩进, 178 00:07:38,540 --> 00:07:40,690 类似的精神,大括号。 179 00:07:40,690 --> 00:07:43,470 而除此之外,我是那种 用我的判断。 180 00:07:43,470 --> 00:07:48,380 请注意,我没有打扰打 请输入标题标签里面。 181 00:07:48,380 --> 00:07:48,990 为什么呢? 182 00:07:48,990 --> 00:07:51,920 好吧,我刚刚决定它看起来 少许清洁剂给我,人, 183 00:07:51,920 --> 00:07:53,181 只是懒得做。 184 00:07:53,181 --> 00:07:54,930 如此反复,有一些 判决称只是 185 00:07:54,930 --> 00:07:57,670 好像有C或任何语言。 186 00:07:57,670 --> 00:08:04,110 >> 但是请注意过,这个压痕 适合于一个心智模式, 187 00:08:04,110 --> 00:08:05,670 不要过度复杂化。 188 00:08:05,670 --> 00:08:07,020 但是,一棵树,对不对? 189 00:08:07,020 --> 00:08:09,290 如果你想一个网站 页,显然写 190 00:08:09,290 --> 00:08:12,050 这样,作为被 很好地缩进的方式, 191 00:08:12,050 --> 00:08:17,390 你几乎可以认为开放式支架 HTML封闭的支架标记标定 192 00:08:17,390 --> 00:08:21,380 一个节点的根,一个家谱 在树上的款式风格节点 193 00:08:21,380 --> 00:08:22,900 我们研究了上周五。 194 00:08:22,900 --> 00:08:27,630 >> 事实上,我们在这里的权利 我们会打电话给一个DOM,D-O-M,文档 195 00:08:27,630 --> 00:08:31,680 对象模型中,说一个奇特的方式 表示该HTML树。 196 00:08:31,680 --> 00:08:36,140 并注意HTML有,我们会说, 就像一个家庭树,两个孩子。 197 00:08:36,140 --> 00:08:37,659 左边是头。 198 00:08:37,659 --> 00:08:39,179 右边是身体。 199 00:08:39,179 --> 00:08:44,220 >> 而且,正如一个无意识的思想运动, 当然,头,有多少孩子 200 00:08:44,220 --> 00:08:46,070 根据这个结构? 201 00:08:46,070 --> 00:08:48,200 所以只有一个,title-- 这就是为什么我们有 202 00:08:48,200 --> 00:08:50,580 箭头从头部将标题。 203 00:08:50,580 --> 00:08:55,110 因此,这好像是人在 家族树刚一后代。 204 00:08:55,110 --> 00:08:58,230 然后标题本身就 可以说有一个孩子了。 205 00:08:58,230 --> 00:09:01,780 >> 回想一下,在HTML有 你好,逗号,在它下面的世界。 206 00:09:01,780 --> 00:09:06,090 而我只是一个在它绘制 椭圆形而不是矩形刚 207 00:09:06,090 --> 00:09:10,559 传达语义,即使 它是树中的一个节点,可以这么说, 208 00:09:10,559 --> 00:09:12,100 这有点本质的不同。 209 00:09:12,100 --> 00:09:12,800 这不是一个标签。 210 00:09:12,800 --> 00:09:14,780 或者更确切地说,它不是一个元素。 211 00:09:14,780 --> 00:09:16,590 这只是一个文本节点,如果你愿意。 212 00:09:16,590 --> 00:09:18,990 但是,这些是完全 任意人的约定。 213 00:09:18,990 --> 00:09:23,180 这是刚才我的方式 代表我会作为一个集合体 214 00:09:23,180 --> 00:09:24,340 调用该文档。 215 00:09:24,340 --> 00:09:27,750 >> 而作为一个在旁边,在事 超级左上角, 216 00:09:27,750 --> 00:09:32,080 开放式托架感叹号文档 HTML类型,这就像是一个标签, 217 00:09:32,080 --> 00:09:35,560 但它是愚蠢的角落情况 这只是在那里,复制和粘贴 218 00:09:35,560 --> 00:09:38,460 来指示浏览器 这是HTML 5版本。 219 00:09:38,460 --> 00:09:41,540 世界在不断变化的是什么 代码在页面的第一行应该是。 220 00:09:41,540 --> 00:09:43,820 这也就意味着5版本。 221 00:09:43,820 --> 00:09:45,950 所以它完全不是那么回事 看起来像其他人。 222 00:09:45,950 --> 00:09:48,120 >> 好吧,让与 说,现在你会明白 223 00:09:48,120 --> 00:09:50,767 这还算这种愚蠢的 纹身的人了。 224 00:09:50,767 --> 00:09:51,990 >> [笑] 225 00:09:51,990 --> 00:09:54,210 >> 大卫·马兰:好吧, 现在,让我们真正的潜水 226 00:09:54,210 --> 00:09:55,710 为做一些与此有关。 227 00:09:55,710 --> 00:09:58,610 你会记得,最后一次 我打开了CS50电器 228 00:09:58,610 --> 00:10:01,650 我做了一件为 简单的开放gedit中。 229 00:10:01,650 --> 00:10:05,190 我保存的文件即使在 我desktop--无处special-- 230 00:10:05,190 --> 00:10:05,870 为hello.html的。 231 00:10:05,870 --> 00:10:07,100 232 00:10:07,100 --> 00:10:10,984 >> 因此,让我这样做 again-- hello.html的输入。 233 00:10:10,984 --> 00:10:13,900 现在,在这个文件中,我将 继续前进,复制我们刚刚 234 00:10:13,900 --> 00:10:18,850 saw--文档类型的HTML然后我要去 做开放式支架HTML封闭支架。 235 00:10:18,850 --> 00:10:21,890 然后我要先发制人 打开和关闭标记。 236 00:10:21,890 --> 00:10:22,390 为什么呢? 237 00:10:22,390 --> 00:10:23,598 只是让我不要忘了后面。 238 00:10:23,598 --> 00:10:26,850 这是一个好的做法,比如开放 闭花括号的一次。 239 00:10:26,850 --> 00:10:28,900 >> 然后呢紧随其后? 240 00:10:28,900 --> 00:10:30,582 你能想到的纹身。 241 00:10:30,582 --> 00:10:31,450 >> 听众:头。 242 00:10:31,450 --> 00:10:32,500 >> 大卫·马兰:头。 243 00:10:32,500 --> 00:10:36,020 然后在这里,我 有标题,我想。 244 00:10:36,020 --> 00:10:39,886 而标题是随意, 你好,世界接近冠军。 245 00:10:39,886 --> 00:10:42,760 再往下这里,身体的, course--那么我们关闭body标签。 246 00:10:42,760 --> 00:10:45,660 然后只是有些冗余, 我有同样的事情到这里。 247 00:10:45,660 --> 00:10:47,150 >> 所以我说这是一个网页。 248 00:10:47,150 --> 00:10:49,050 这是后话了 现在可以生活在网络上, 249 00:10:49,050 --> 00:10:51,925 尽管,当然,它的字面意思 住在我的桌面上现在。 250 00:10:51,925 --> 00:10:55,837 不过说实在的,如果我减少gedit中, 我将我的桌面图标上看到的。 251 00:10:55,837 --> 00:10:58,420 即使是这样的设备, 你可以这样做在Mac OS 252 00:10:58,420 --> 00:11:01,580 没有TextEdit或 窗户用记事本偶数。 253 00:11:01,580 --> 00:11:06,115 >> 如果我继续和双击 即使和选择 - 好了,让我们 254 00:11:06,115 --> 00:11:07,990 没有选择,因为 Chrome的不开放。 255 00:11:07,990 --> 00:11:09,281 让我们继续前进,打开浏览器。 256 00:11:09,281 --> 00:11:10,160 257 00:11:10,160 --> 00:11:14,040 然后执行命令-O开放 并导航到我的桌面 258 00:11:14,040 --> 00:11:15,320 并打开文件。 259 00:11:15,320 --> 00:11:20,120 这是怎样一个浏览器解释 HTML中,从上到下,从左到右。 260 00:11:20,120 --> 00:11:21,314 嘿,浏览器这里的HTML。 261 00:11:21,314 --> 00:11:21,980 这里的负责人。 262 00:11:21,980 --> 00:11:23,250 这里的称号。 263 00:11:23,250 --> 00:11:24,090 这里的身体。 264 00:11:24,090 --> 00:11:26,620 事实上,这是怎么 它呈现的网页。 265 00:11:26,620 --> 00:11:27,800 >> 但是要注意的URL。 266 00:11:27,800 --> 00:11:32,430 没有,你可以拉起来这个特定的 在您的笔记本电脑的页面,现在, 267 00:11:32,430 --> 00:11:34,910 甚至里面的 通过该URL家电, 268 00:11:34,910 --> 00:11:40,130 因为文件://表明它实际上 在我的文件系统,我的硬盘, 269 00:11:40,130 --> 00:11:40,990 不是你的。 270 00:11:40,990 --> 00:11:42,440 因此,这是不是所有的有用。 271 00:11:42,440 --> 00:11:44,940 >> 现在,让我们走向移动 用一个实际的Web服务器。 272 00:11:44,940 --> 00:11:48,309 而事实证明,在CS50电器 不仅仅是一个环境, 273 00:11:48,309 --> 00:11:51,100 你可以写C代码和编译 并运行它,就像你一直在做。 274 00:11:51,100 --> 00:11:55,500 它也已被配置成通过所述 人员来表示一个典型的网络 275 00:11:55,500 --> 00:11:58,290 服务器在Internet上, 可能是你付 276 00:11:58,290 --> 00:12:00,210 或一个就是在所谓的云。 277 00:12:00,210 --> 00:12:02,600 >> 而且它的运行 标准的开源免费 278 00:12:02,600 --> 00:12:06,160 软件,例如,一些 叫阿帕奇,这也许是 279 00:12:06,160 --> 00:12:08,700 仍然是最流行的Web 在世界上的服务器软件 280 00:12:08,700 --> 00:12:11,030 成千上万的网站今天使用。 281 00:12:11,030 --> 00:12:13,420 它甚至还可以有 软件如MySQL, 282 00:12:13,420 --> 00:12:16,240 这是一个数据库服务器 我们最终会到达, 283 00:12:16,240 --> 00:12:18,330 这仅仅是说 我可以开始治疗 284 00:12:18,330 --> 00:12:22,040 我的设备作为一个完全成熟的服务器 我不是支付其他地方。 285 00:12:22,040 --> 00:12:25,980 它只是生活在自己的笔记本电脑 发展和方便的目的。 286 00:12:25,980 --> 00:12:27,870 >> 因此,让我们继续前进, 利用这一点。 287 00:12:27,870 --> 00:12:30,120 我要继续前进, 打开一个终端窗口。 288 00:12:30,120 --> 00:12:33,030 而且我要继续前进, move--实际上,第一个我 289 00:12:33,030 --> 00:12:34,860 要导航到我的桌面。 290 00:12:34,860 --> 00:12:36,400 如果我做LS,有hello.html的。 291 00:12:36,400 --> 00:12:37,022 292 00:12:37,022 --> 00:12:38,730 我要去 未来,并开始使用 293 00:12:38,730 --> 00:12:40,800 我们已经新目录 在今天之前不能使用。 294 00:12:40,800 --> 00:12:46,840 >> hello.html--我要动 以../vhosts虚拟hosts-- 295 00:12:46,840 --> 00:12:50,940 更多的,在未来 - 然后 到一个名为localhost目录下, 296 00:12:50,940 --> 00:12:54,420 这是考虑到几乎昵称 任何一台电脑,无论是在Mac,PC, 297 00:12:54,420 --> 00:12:57,560 或Linux计算机,然后 具体到一个目录中,我们, 298 00:12:57,560 --> 00:13:01,260 工作人员已为您创建的时候 您下载的所谓家电 299 00:13:01,260 --> 00:13:01,760 公众。 300 00:13:01,760 --> 00:13:04,551 正如它的名字所暗示的,任何事情 我把这个文件夹中,在理论上, 301 00:13:04,551 --> 00:13:07,790 是要现在是 公开的,至少人 302 00:13:07,790 --> 00:13:10,030 直接谁拥有 连接到我的电脑。 303 00:13:10,030 --> 00:13:13,160 >> 所以,现在让我继续前进, 做cd到同一个目录下 304 00:13:13,160 --> 00:13:15,490 这样我就可以看到什么 怎么回事,输入ls。 305 00:13:15,490 --> 00:13:17,630 事实上,这就是 在那里嘛。 306 00:13:17,630 --> 00:13:23,250 我现在,因为我已经把这种说法 文件hello.html的一个目录的内 307 00:13:23,250 --> 00:13:26,940 称为目录的公开内 目录内为localhost 308 00:13:26,940 --> 00:13:29,810 所谓虚拟主机,这 感谢CS50人员 309 00:13:29,810 --> 00:13:34,390 已被预先配置成 您的Web服务器的根目录, 310 00:13:34,390 --> 00:13:36,900 我现在希望能做到这一点。 311 00:13:36,900 --> 00:13:38,390 >> 我要开辟一个新的选项卡。 312 00:13:38,390 --> 00:13:40,090 我要去不予立案://。 313 00:13:40,090 --> 00:13:44,520 我将用实际 HTTP / localhost,该 314 00:13:44,520 --> 00:13:47,470 再次,是昵称 对于我自己的服务器。 315 00:13:47,470 --> 00:13:51,085 然后我会去到什么 文件名,只是要清楚吗? 316 00:13:51,085 --> 00:13:52,680 317 00:13:52,680 --> 00:13:54,320 哪里是这个故事的大概走向何方? 318 00:13:54,320 --> 00:13:56,066 319 00:13:56,066 --> 00:13:56,565 hello.html的。 320 00:13:56,565 --> 00:13:58,350 321 00:13:58,350 --> 00:14:04,270 >> 所以,换句话说,我想现在这个 是我自己的电脑,我自己的家电, 322 00:14:04,270 --> 00:14:05,660 就好像它是一个真正的服务器。 323 00:14:05,660 --> 00:14:07,490 它的绰号为localhost。 324 00:14:07,490 --> 00:14:10,210 不过想想本地主机作为像 Facebook.com google.com,等等。 325 00:14:10,210 --> 00:14:11,600 这只是我的本地名称。 326 00:14:11,600 --> 00:14:14,810 然后最终我要的是在 硬盘驱动器的根目录,可以这么说, 327 00:14:14,810 --> 00:14:17,729 或Web服务器的根, ERGO正斜杠,然后 328 00:14:17,729 --> 00:14:18,770 文件名hello.html的。 329 00:14:18,770 --> 00:14:19,880 330 00:14:19,880 --> 00:14:21,930 >> 让我缩小并按下回车键。 331 00:14:21,930 --> 00:14:24,266 事实上,现在有我的网页。 332 00:14:24,266 --> 00:14:25,390 因此,它是略有不同的。 333 00:14:25,390 --> 00:14:26,880 它只是为给人留下深刻印象。 334 00:14:26,880 --> 00:14:27,904 这是旧版本。 335 00:14:27,904 --> 00:14:29,070 让我缩小字体回去。 336 00:14:29,070 --> 00:14:29,745 这是老了。 337 00:14:29,745 --> 00:14:30,890 这是新的。 338 00:14:30,890 --> 00:14:35,430 但是,什么是根本上发生的事情 现在是HTTP的正在被使用。 339 00:14:35,430 --> 00:14:39,344 >> 让我们把这个更加清楚一点,或者, 如果你愿意,更复杂一点。 340 00:14:39,344 --> 00:14:41,760 让我去右下角 角落我的设备的。 341 00:14:41,760 --> 00:14:44,000 并注意到这一切 时间,还有的是一个数字。 342 00:14:44,000 --> 00:14:47,330 这是唯一的地址 您CS50电器。 343 00:14:47,330 --> 00:14:50,800 这是一个私有地址, 所暗示的172.16, 344 00:14:50,800 --> 00:14:53,860 只有您身体只是手段 可以访问这个Web服务器。 345 00:14:53,860 --> 00:14:56,340 一切都和防火墙 很好地保护,其余 346 00:14:56,340 --> 00:14:58,130 因为这个世界的寻址。 347 00:14:58,130 --> 00:15:01,920 >> 现在发现,虽然如果我去 这个地址,而不是在我的器具, 348 00:15:01,920 --> 00:15:04,340 但在Mac OS--我要去 回头看过来。 349 00:15:04,340 --> 00:15:05,930 这是我的Mac了。 350 00:15:05,930 --> 00:15:08,460 而现在我要去开拓 这个版本的Chrome浏览器在这里。 351 00:15:08,460 --> 00:15:17,370 我要去到http://172.16.25 /我忘了rest-- 133。 352 00:15:17,370 --> 00:15:25,210 >> 所以我打算从我的Mac访问 该IP地址/hello.html输入。 353 00:15:25,210 --> 00:15:29,850 而现在,我从我的Mac看 我的CS50电器,谁的 354 00:15:29,850 --> 00:15:32,600 IP地址是 数,的确表现 355 00:15:32,600 --> 00:15:34,320 像在互联网上的web服务器。 356 00:15:34,320 --> 00:15:36,944 它没有一个很好的容易 记得名字一样Facebook.com, 357 00:15:36,944 --> 00:15:40,370 但它使用HTTP 显然,即使铬 358 00:15:40,370 --> 00:15:43,560 一种是简化了的世界 对我们来说却没有向我们展示HTTP。 359 00:15:43,560 --> 00:15:46,210 但是,这确实是完全相同的。 360 00:15:46,210 --> 00:15:48,470 Chrome浏览器只是节省一些 击键这些天。 361 00:15:48,470 --> 00:15:50,530 这就是我们现在看到的。 362 00:15:50,530 --> 00:15:51,890 >> 所以这是一切优秀和良好。 363 00:15:51,890 --> 00:15:53,740 但是,这是一个非常深刻印象的页面。 364 00:15:53,740 --> 00:15:56,230 让我进去做什么 有一点不同了。 365 00:15:56,230 --> 00:15:57,910 因此,让我回去gedit中。 366 00:15:57,910 --> 00:16:00,580 而代替打招呼, 世界,让我们把图像。 367 00:16:00,580 --> 00:16:05,880 我从before--让我去称 进入我的本地目录中公布。 368 00:16:05,880 --> 00:16:10,580 让我继续前进,复制 一大堆从今天的文件 369 00:16:10,580 --> 00:16:15,633 从我的Dropbox文件夹复制到这里。 370 00:16:15,633 --> 00:16:19,470 371 00:16:19,470 --> 00:16:21,680 >> 现在,如果我输入ls,看 在所有这些文件 372 00:16:21,680 --> 00:16:24,940 我已经通过分布 当然网站提前的今天, 373 00:16:24,940 --> 00:16:26,830 其中之一是静止hello.html的。 374 00:16:26,830 --> 00:16:27,830 因此,有那一个。 375 00:16:27,830 --> 00:16:30,730 而回忆这段痴心一片 从去年时间 - cat.jpg。 376 00:16:30,730 --> 00:16:34,550 所以让我尝试嵌入 cat.jpg我的网页里。 377 00:16:34,550 --> 00:16:37,690 >> 我要继续前进 做cat.jpg,保存。 378 00:16:37,690 --> 00:16:38,950 让我再回到浏览器。 379 00:16:38,950 --> 00:16:41,140 让我放大了 字体现在重装。 380 00:16:41,140 --> 00:16:43,090 381 00:16:43,090 --> 00:16:45,030 哎呀,在这里我把这个? 382 00:16:45,030 --> 00:16:48,210 383 00:16:48,210 --> 00:16:51,520 Standby--我还有老 版本从桌面打开。 384 00:16:51,520 --> 00:16:56,020 因此,让我进入我的虚拟主机,我 本地主机,我的公开和hello.html的。 385 00:16:56,020 --> 00:16:57,320 386 00:16:57,320 --> 00:17:00,670 所以,现在让我继续前进, 说主体的内部cat.jpg 387 00:17:00,670 --> 00:17:02,830 在这里我希望它是 显示并重新加载。 388 00:17:02,830 --> 00:17:04,560 当然,这是不正确的。 389 00:17:04,560 --> 00:17:08,050 >> 所以,我需要告诉浏览器一点点 更刻意就是我想要做的事。 390 00:17:08,050 --> 00:17:10,210 只需键入名称是 显然不充分。 391 00:17:10,210 --> 00:17:15,134 所以,记得还有一个 标签,图像,IMG的简称。 392 00:17:15,134 --> 00:17:17,550 这仅仅是因为人类 不喜欢的类型完整的单词。 393 00:17:17,550 --> 00:17:19,050 然后我们可以做源=“cat.jpg”。 394 00:17:19,050 --> 00:17:21,470 395 00:17:21,470 --> 00:17:23,550 >> 现在我该怎么办 有一点不同的位置。 396 00:17:23,550 --> 00:17:25,390 即使所有的 我们的标签迄今有 397 00:17:25,390 --> 00:17:28,086 过了这个概念 开始标记和结束标记, 398 00:17:28,086 --> 00:17:30,210 这并没有真正 有意义的图像,对不对? 399 00:17:30,210 --> 00:17:32,430 图像或者是有还是没有出现。 400 00:17:32,430 --> 00:17:36,650 这样一来,人类发展, 了一个简单的约定。 401 00:17:36,650 --> 00:17:40,310 当你有一个标记,既可以 开始和结束于相同的时间 - 402 00:17:40,310 --> 00:17:43,790 它可以是空的,所以speak--刚 把正斜杠标签内 403 00:17:43,790 --> 00:17:44,710 在最后。 404 00:17:44,710 --> 00:17:45,776 405 00:17:45,776 --> 00:17:47,150 现在让我回到我的浏览器。 406 00:17:47,150 --> 00:17:50,377 打刷新妈的,什么是错的。 407 00:17:50,377 --> 00:17:52,460 你可能已经看到了这个 偶尔在网络上, 408 00:17:52,460 --> 00:17:53,600 即使它没有得到你的错。 409 00:17:53,600 --> 00:17:54,766 这是Web服务器的故障。 410 00:17:54,766 --> 00:17:56,240 什么颂歌这似乎预示? 411 00:17:56,240 --> 00:17:57,450 412 00:17:57,450 --> 00:17:58,009 这是坏了。 413 00:17:58,009 --> 00:17:59,300 这就是图像所属。 414 00:17:59,300 --> 00:17:59,700 是吗? 415 00:17:59,700 --> 00:18:01,560 >> 听众:但它不 可以访问该图像。 416 00:18:01,560 --> 00:18:03,070 >> 大卫·马兰:这不 可以访问该图像。 417 00:18:03,070 --> 00:18:05,230 也就是说,甚至更糟,也许 它甚至不存在。 418 00:18:05,230 --> 00:18:06,729 让我们来看看,如果我们不能诊断的。 419 00:18:06,729 --> 00:18:09,390 从最后一次回想一下,如果 在Chrome中,在家电, 420 00:18:09,390 --> 00:18:11,870 甚至在您的Mac或PC, 你去Developer菜单 421 00:18:11,870 --> 00:18:14,650 并转到开发工具 选项​​,这可能是你已经 422 00:18:14,650 --> 00:18:16,850 不使用过多或过。 423 00:18:16,850 --> 00:18:20,780 如果我去网 并重新加载页面, 424 00:18:20,780 --> 00:18:24,110 让我们来实际看一下HTTP 正在做出该请求。 425 00:18:24,110 --> 00:18:28,400 >> 它看起来像hello.html的是 确实好,因此200。 426 00:18:28,400 --> 00:18:30,630 但cat.jpg是403。 427 00:18:30,630 --> 00:18:31,650 所以它不是一个404。 428 00:18:31,650 --> 00:18:33,490 文件可能存在。 429 00:18:33,490 --> 00:18:35,250 403是指禁止。 430 00:18:35,250 --> 00:18:37,790 所以这是一个有点混乱。 431 00:18:37,790 --> 00:18:42,340 我要回去 我的终端窗口。 432 00:18:42,340 --> 00:18:43,700 让我放大了这里。 433 00:18:43,700 --> 00:18:44,750 让我做一个LS。 434 00:18:44,750 --> 00:18:46,430 有那些相同的文件。 435 00:18:46,430 --> 00:18:49,410 >> 现在让我做了LS-L, 这你可能 436 00:18:49,410 --> 00:18:53,350 之前看文件中使用 尺寸可能或时间戳。 437 00:18:53,350 --> 00:18:55,590 而且我们看到一大堆 铺天盖地的信息。 438 00:18:55,590 --> 00:18:57,040 但是要注意一些细节。 439 00:18:57,040 --> 00:19:01,660 下面是hello.html的本 排在这里和这里的cat.jpg。 440 00:19:01,660 --> 00:19:02,934 441 00:19:02,934 --> 00:19:05,850 它只是家电是 用户通过突出显示JPEG友好 442 00:19:05,850 --> 00:19:07,380 紫色是这样的。 443 00:19:07,380 --> 00:19:11,470 但是,什么是不同的旁边 文件大小和文件名? 444 00:19:11,470 --> 00:19:13,438 445 00:19:13,438 --> 00:19:14,754 >> 听众:[听不清]。 446 00:19:14,754 --> 00:19:16,920 大卫·马兰:是啊,有 2多个R的看过来。 447 00:19:16,920 --> 00:19:20,170 注意什么hello.html的已回事。 448 00:19:20,170 --> 00:19:24,050 所以,事实证明,名称 这个目录公开是很重要的。 449 00:19:24,050 --> 00:19:26,400 任何在此目录中 是指被公开。 450 00:19:26,400 --> 00:19:28,790 但是,这还不够 只是在那里放文件。 451 00:19:28,790 --> 00:19:31,480 你还需要改变 的文件的模式, 452 00:19:31,480 --> 00:19:35,180 更改的权限 该文件不主动 453 00:19:35,180 --> 00:19:37,650 是默认设置, 这是只有我能读懂 454 00:19:37,650 --> 00:19:39,220 写吧,我是主人。 455 00:19:39,220 --> 00:19:43,540 我想全世界的每个人都来 能读懂我的文件,可以这么说。 456 00:19:43,540 --> 00:19:44,950 阅读只是手段进行查看。 457 00:19:44,950 --> 00:19:49,780 >> 事实上,正如你会在看到问题 设置7,这就是这些R的意思。 458 00:19:49,780 --> 00:19:53,160 这两个R的意思让大家 在世界其他也读它, 459 00:19:53,160 --> 00:19:55,300 尤其是现在, 这是该目录中。 460 00:19:55,300 --> 00:19:59,620 因此,要解决这个问题最简单的方法是 去我的提示做CHMOD变革 461 00:19:59,620 --> 00:20:05,580 模式,然后做一个+ R,干脆, 每个人,一切和r表示读, 462 00:20:05,580 --> 00:20:07,944 然后cat.jpg Enter键。 463 00:20:07,944 --> 00:20:10,360 似乎什么都没有发生,这 通常是指一件好事。 464 00:20:10,360 --> 00:20:13,850 所以LS-L again--现在 让我们来看看cat.jpg。 465 00:20:13,850 --> 00:20:15,750 与此权限 似乎已经改变。 466 00:20:15,750 --> 00:20:18,670 顺便说一句,如果你犯了一个 错,你,例如, 467 00:20:18,670 --> 00:20:23,210 刚才your--我不知道 - 作文 公开偶然访问, 468 00:20:23,210 --> 00:20:25,480 你可以反其道而行之,存取权限chmod a-R。 469 00:20:25,480 --> 00:20:25,909 470 00:20:25,909 --> 00:20:28,200 但坦率地说,它不应该 在公共目录 471 00:20:28,200 --> 00:20:29,760 反正如果是这样的问题。 472 00:20:29,760 --> 00:20:32,475 >> 所以,现在,让我们回到 我的浏览器和重载。 473 00:20:32,475 --> 00:20:32,904 474 00:20:32,904 --> 00:20:34,820 我要去点击 小捉鬼敢死队 475 00:20:34,820 --> 00:20:38,030 符号清除的那部分 屏幕,我们可以看到新的要求。 476 00:20:38,030 --> 00:20:40,630 事实上,这里是 脾气坏的猫从之前。 477 00:20:40,630 --> 00:20:43,010 但更重要的是, 技术上,有 478 00:20:43,010 --> 00:20:45,565 数200,其 意味着我们得到了确定。 479 00:20:45,565 --> 00:20:47,190 好了,所以这是一切优秀和良好。 480 00:20:47,190 --> 00:20:48,940 但是,我们并没有做 最好的网站, 481 00:20:48,940 --> 00:20:51,967 我们也将试图太难 使网站今天最高档。 482 00:20:51,967 --> 00:20:54,550 但是,让我们至少做一些事情 之前剑拔弩张超熟悉 483 00:20:54,550 --> 00:20:56,030 关闭其他几个标签。 484 00:20:56,030 --> 00:20:58,470 因此,假设我不只是要一只猫在这里。 485 00:20:58,470 --> 00:21:02,530 假设我真的希望这 猫要链接到的东西。 486 00:21:02,530 --> 00:21:07,210 >> 我可能,例如 做这样的事情。 487 00:21:07,210 --> 00:21:08,580 488 00:21:08,580 --> 00:21:12,890 一个锚的HREF 超基准equals-- 489 00:21:12,890 --> 00:21:17,440 而我们只是做一些事情 像www.google.com关闭 490 00:21:17,440 --> 00:21:19,540 引述接近支架。 491 00:21:19,540 --> 00:21:22,000 现在搜索的猫。 492 00:21:22,000 --> 00:21:23,520 关闭锚标记。 493 00:21:23,520 --> 00:21:26,760 因此,这只有一个排序 从根本上新的细节。 494 00:21:26,760 --> 00:21:28,190 当然,标签是不同的。 495 00:21:28,190 --> 00:21:31,770 它的名称的锚 HREF或Hyper参考。 496 00:21:31,770 --> 00:21:35,269 >> 但更重要的是,有 这个语法功能在这里。 497 00:21:35,269 --> 00:21:37,810 这就是我们将开始呼唤 没有一个标签,而是一个属性。 498 00:21:37,810 --> 00:21:40,830 和属性是什么, 修改标签的行为。 499 00:21:40,830 --> 00:21:45,400 而这种属性,HREF,手段 修改此锚的行为 500 00:21:45,400 --> 00:21:48,430 这样,当它被点击, 它进入这个网址在这里。 501 00:21:48,430 --> 00:21:50,330 ,当然,该URL是谷歌。 502 00:21:50,330 --> 00:21:53,951 >> 同时,这是什么 文字在这里将会是? 503 00:21:53,951 --> 00:21:55,950 嗯,这将是 实际上是什么人 504 00:21:55,950 --> 00:21:58,470 看到的下划线 链接,就这么简单。 505 00:21:58,470 --> 00:21:59,220 因此,让我们试试这个。 506 00:21:59,220 --> 00:21:59,980 让我保存它。 507 00:21:59,980 --> 00:22:01,650 我仍然在hello.html的。 508 00:22:01,650 --> 00:22:05,360 但在网上的版本中,你会看到 我们的实际文件名预先制备。 509 00:22:05,360 --> 00:22:06,805 让我继续前进,重新加载。 510 00:22:06,805 --> 00:22:08,680 而现在它是一个非常 给人留下深刻印象仍页面。 511 00:22:08,680 --> 00:22:10,910 但是,如果我将鼠标悬停在那里 - 这是一个有点小, 512 00:22:10,910 --> 00:22:13,576 但 - 你可以在下方看到 左上角屏幕, 513 00:22:13,576 --> 00:22:15,242 它真的到google.com。 514 00:22:15,242 --> 00:22:19,280 如果我点击,它会 拂我的方式来实际的谷歌。 515 00:22:19,280 --> 00:22:22,610 >> 但是请注意,这里的机会 开发,只是作为一个备用。 516 00:22:22,610 --> 00:22:25,150 我们会回来给其他 安全用不了多久的问题。 517 00:22:25,150 --> 00:22:29,290 因为有这种二分法 你去哪里和你说的, 518 00:22:29,290 --> 00:22:34,722 你可以这样做 this-- http://www.google.com。 519 00:22:34,722 --> 00:22:37,134 好了,现在如果我重装 保存该网页后, 520 00:22:37,134 --> 00:22:38,800 它看起来像我会去谷歌。 521 00:22:38,800 --> 00:22:40,966 但是,没有任何原因,我 必须去谷歌,对吗? 522 00:22:40,966 --> 00:22:47,460 我其实可以去像 badguy.com,重新加载该页面在这里。 523 00:22:47,460 --> 00:22:49,750 和通知,它仍然看起来像谷歌。 524 00:22:49,750 --> 00:22:52,020 且仅当我尖锐 足以将鼠标悬停在这里 525 00:22:52,020 --> 00:22:54,770 我会看到它甚至会 去一个不同的位置。 526 00:22:54,770 --> 00:22:57,400 >> 所以,如果你曾经得到 的电子邮件,特别是 527 00:22:57,400 --> 00:22:59,610 一个来自支付宝,或 貌似从支付宝 528 00:22:59,610 --> 00:23:01,830 请您登录 您的帐户,这 529 00:23:01,830 --> 00:23:06,380 所以你千万别 曾经在电子邮件中点击链接, 530 00:23:06,380 --> 00:23:07,930 坦率地说,在电子邮件中的任何链接。 531 00:23:07,930 --> 00:23:10,380 如果你知道你有实际 在支付宝或银行的钱 532 00:23:10,380 --> 00:23:14,250 美国或富达或任何 网站手动输入进来。 533 00:23:14,250 --> 00:23:17,530 因为看起来它是多么容易 欺骗某人为展示什么 534 00:23:17,530 --> 00:23:18,526 看起来像一个链接。 535 00:23:18,526 --> 00:23:20,400 但它实际上可能 绝对去任何地方。 536 00:23:20,400 --> 00:23:23,301 >> 并有更大的 威胁莫过于此。 537 00:23:23,301 --> 00:23:25,300 其实,这是一个有点 切线的现在,但一 538 00:23:25,300 --> 00:23:28,430 的最好的我见过 这已被关闭, 539 00:23:28,430 --> 00:23:34,060 是有人牵头人 to--所以这可能会说, 540 00:23:34,060 --> 00:23:37,660 点击这里登录到您的 帐户,银行帐户。 541 00:23:37,660 --> 00:23:40,985 这是西方银行。 542 00:23:40,985 --> 00:23:43,030 543 00:23:43,030 --> 00:23:44,250 >> 因此,有人买了这个。 544 00:23:44,250 --> 00:23:47,090 这是一个很容易就能看到 它在一个单间距字体放大 545 00:23:47,090 --> 00:23:49,190 在一个30英尺的投影机。 546 00:23:49,190 --> 00:23:51,720 但是,当它是小字体中 电子邮件是您收到, 547 00:23:51,720 --> 00:23:54,690 这看起来像bankofthewest.com, 不bankofthevvest.com, 548 00:23:54,690 --> 00:23:58,230 其中有人已支付10美元购买。 549 00:23:58,230 --> 00:24:00,840 然后这导致了他们的 相当于一些不良网站。 550 00:24:00,840 --> 00:24:05,540 >> 你会看到too--其实我们可以做的 this--如果我去实际的网站, 551 00:24:05,540 --> 00:24:10,335 bankofthewest.com,再次 从上一次召回 552 00:24:10,335 --> 00:24:13,210 如果这是他们的网页, 你好奇的是,它的工作原理, 553 00:24:13,210 --> 00:24:15,610 你当然可以去 Chrome的开发者工具。 554 00:24:15,610 --> 00:24:18,890 你可以看到所有的 HTML格式良好的存在​​。 555 00:24:18,890 --> 00:24:20,890 >> 但更重要的是, 你cam--让我们关闭 556 00:24:20,890 --> 00:24:24,760 this--你可以去查看 开发人员查看源文件。 557 00:24:24,760 --> 00:24:25,770 558 00:24:25,770 --> 00:24:28,350 我为什么不只是复制 所有这一切,然后我 559 00:24:28,350 --> 00:24:31,630 可以进入我的小窗口gedit中 在这里,让我自己的网页。 560 00:24:31,630 --> 00:24:33,210 在hello.html的存档。 561 00:24:33,210 --> 00:24:36,770 大概这是要打破, 因为它不是如此简单平常。 562 00:24:36,770 --> 00:24:41,590 但现在,如果我重装上自己的网页 我自己CS50电器和打重装, 563 00:24:41,590 --> 00:24:42,990 OK,有些东西打破了。 564 00:24:42,990 --> 00:24:45,750 但我敢接近有 我自己的银行网站,对吧? 565 00:24:45,750 --> 00:24:46,570 所有的这HTML-- 566 00:24:46,570 --> 00:24:47,370 >> [笑] 567 00:24:47,370 --> 00:24:49,210 >> 大卫·马兰:--I 没有actually--你 568 00:24:49,210 --> 00:24:52,210 知道有一个人在那里谁 实际上过于点击这些链接。 569 00:24:52,210 --> 00:24:54,864 所以很明显,有些东西打破了。 570 00:24:54,864 --> 00:24:56,780 但是这会导致 我们进入一个讨论, 571 00:24:56,780 --> 00:25:00,810 不必要的现在,至于是什么 CSS,层叠样式表,是, 572 00:25:00,810 --> 00:25:03,410 实际上你如何 下载其他HTML文件 573 00:25:03,410 --> 00:25:06,140 和JPEG文件GIF文件 该网站可能会使用。 574 00:25:06,140 --> 00:25:07,960 但是,所有这一切是accomplishable。 575 00:25:07,960 --> 00:25:11,110 但是,它真的可以归结为 这些非常简单的启发式方法。 576 00:25:11,110 --> 00:25:14,450 >> 所以,现在就让我们通过略读 几个HTML的其它实例 577 00:25:14,450 --> 00:25:16,680 只是给你的感觉 还有什么可以做。 578 00:25:16,680 --> 00:25:18,670 例如,这是list.html。 579 00:25:18,670 --> 00:25:23,240 假如我要拍一个网页 与房屋的四边形的列表。 580 00:25:23,240 --> 00:25:28,960 我可能会使用的UL标签无序 列表,然后将列表项子 581 00:25:28,960 --> 00:25:33,760 然后遍历over--或列表, rather--房子有问题。 582 00:25:33,760 --> 00:25:36,080 >> 如果我开这件事,让我们做到这一点。 583 00:25:36,080 --> 00:25:40,670 让我们不要hello.html的, 但list.html。 584 00:25:40,670 --> 00:25:42,160 该死的。 585 00:25:42,160 --> 00:25:43,000 我该如何解决这个问题? 586 00:25:43,000 --> 00:25:45,679 587 00:25:45,679 --> 00:25:47,220 这是相同的问题和以前一样,对不对? 588 00:25:47,220 --> 00:25:52,510 所以,让我做chmod-- oops-- 存取权限chmod a + list.html的河 589 00:25:52,510 --> 00:25:54,610 590 00:25:54,610 --> 00:25:59,610 而现在,如果我回到我的浏览器 单击刷新,它就在那里。 591 00:25:59,610 --> 00:26:02,360 因此,如果你曾经想制作 项目符号列表,你​​可以做到这一点。 592 00:26:02,360 --> 00:26:06,210 如果你想成为超级花哨,使 的有序列表,而不是一个无序列表, 593 00:26:06,210 --> 00:26:10,170 改变那些OL,重新加载页面, 现在,浏览器将编号给你。 594 00:26:10,170 --> 00:26:11,241 >> 我们还能做什么? 595 00:26:11,241 --> 00:26:13,990 嗯,一对夫妇的others--如果 你有text--长款 596 00:26:13,990 --> 00:26:15,698 例如,一些 像this--拉丁文本 597 00:26:15,698 --> 00:26:20,730 你希望它在不同的段落, 开P,段落标记密切页。 598 00:26:20,730 --> 00:26:22,010 而一次又一次地这样做。 599 00:26:22,010 --> 00:26:26,600 如果我现在打开这个文件, paragraphs.html,好了,这 600 00:26:26,600 --> 00:26:27,570 越来越讨厌。 601 00:26:27,570 --> 00:26:34,320 所以,现在就让我们回到我 提示,存取权限chmod a + R R星.html-- 602 00:26:34,320 --> 00:26:36,099 一个可爱的小外卡可以这么说。 603 00:26:36,099 --> 00:26:37,890 这应该可以解决所有的 这些问题对我来说。 604 00:26:37,890 --> 00:26:38,990 让我们来重新加载。 605 00:26:38,990 --> 00:26:40,500 有三段。 606 00:26:40,500 --> 00:26:42,930 >> 现在,让我们继续 并开辟另外一个。 607 00:26:42,930 --> 00:26:44,310 怎么样的表? 608 00:26:44,310 --> 00:26:46,440 你会发现表如下 稍微复杂一些。 609 00:26:46,440 --> 00:26:49,110 但它同样idea-- 开放标签,打开标签, 610 00:26:49,110 --> 00:26:51,360 开放,开放,开放,关闭标签,打开标签。 611 00:26:51,360 --> 00:26:54,410 而这些恰好代表 表,其边界是很明显 612 00:26:54,410 --> 00:26:58,500 将是一个厚度1--任何 这是指:表行,表 613 00:26:58,500 --> 00:27:00,320 数据,这意味着小区。 614 00:27:00,320 --> 00:27:03,840 如果我回到我的浏览器 在这里,去table.html, 615 00:27:03,840 --> 00:27:05,840 你可以看到什么 这样,狰狞。 616 00:27:05,840 --> 00:27:07,840 但我们会去点 在这里我们可以真正 617 00:27:07,840 --> 00:27:09,260 使比漂亮的东西。 618 00:27:09,260 --> 00:27:10,530 >> 因此,让我规定现在。 619 00:27:10,530 --> 00:27:11,870 还有更多的标签束。 620 00:27:11,870 --> 00:27:15,225 而HTML是美妙的回暖 因为,坦率地说,所有你需要做的 621 00:27:15,225 --> 00:27:17,600 是看现有的网页 与你熟悉。 622 00:27:17,600 --> 00:27:20,340 和你一样,哦,这是怎么 他们这样做美观。 623 00:27:20,340 --> 00:27:23,159 >> 或者,你可以查找任何在线 资源为HTML是如何工作的, 624 00:27:23,159 --> 00:27:25,700 你会看到,有一个 其他标记的所有词汇。 625 00:27:25,700 --> 00:27:30,110 但是,用简单的心理模型 孤独,几乎任何标签打开 626 00:27:30,110 --> 00:27:33,620 已被真正关闭, 没有足够的自学 627 00:27:33,620 --> 00:27:36,950 HTML了解后, 标签这些基本理念 628 00:27:36,950 --> 00:27:40,520 和属性以及良好性 我们已经谈到, 629 00:27:40,520 --> 00:27:44,697 收什么,我们可能会打开 所以,我们不要混淆一个浏览器。 630 00:27:44,697 --> 00:27:46,780 现在让我们借此来 一个更有趣的水平 631 00:27:46,780 --> 00:27:48,100 通过将实际的。 632 00:27:48,100 --> 00:27:51,095 让我们去我的Mac 在这里,到google.com。 633 00:27:51,095 --> 00:27:52,280 634 00:27:52,280 --> 00:27:54,020 现在notice--让我们做到这一点。 635 00:27:54,020 --> 00:27:57,280 我锣去 设置,搜索设置。 636 00:27:57,280 --> 00:28:01,070 我想关闭这个恼人的瞬间 结果事情立刻在那里 637 00:28:01,070 --> 00:28:02,450 开始回应你的打字。 638 00:28:02,450 --> 00:28:05,300 让我们做到这一点旧的学校,所以 实际上我们看到发生了什么事情。 639 00:28:05,300 --> 00:28:08,260 >> 所以,我要救我 谷歌在这里设置。 640 00:28:08,260 --> 00:28:11,160 现在notice--我要去 搜索类似猫科动物。 641 00:28:11,160 --> 00:28:14,500 它仍然在做汽车 在这里完成,但基于东西 642 00:28:14,500 --> 00:28:15,970 人们已经输入了过去。 643 00:28:15,970 --> 00:28:17,490 但是要注意什么事情要发生。 644 00:28:17,490 --> 00:28:20,272 >> 在URL的时刻 是这样的,只是google.com。 645 00:28:20,272 --> 00:28:22,650 而在技术上,它的斜线。 646 00:28:22,650 --> 00:28:25,910 谷歌只是保存字符 而不是向我们展示这一点。 647 00:28:25,910 --> 00:28:30,400 他们向我们展示了HTTPS,只 是超级让人欣慰的是我们 648 00:28:30,400 --> 00:28:32,850 在安全或加密的页面。 649 00:28:32,850 --> 00:28:35,690 >> 因此,让我继续前进,寻找猫。 650 00:28:35,690 --> 00:28:37,670 现在,这个真的有 铺天盖地的快。 651 00:28:37,670 --> 00:28:39,470 看看这个URL的长度。 652 00:28:39,470 --> 00:28:43,070 但事实证明,大部分这样的东西 在URL实际上是相当无用的。 653 00:28:43,070 --> 00:28:45,320 我要开始删除 事情我不明白。 654 00:28:45,320 --> 00:28:46,560 655 00:28:46,560 --> 00:28:47,360 我看到猫。 656 00:28:47,360 --> 00:28:48,470 我明白了猫。 657 00:28:48,470 --> 00:28:50,380 我不知道为什么猫那里了。 658 00:28:50,380 --> 00:28:52,620 我真的不知道 这是什么废话。 659 00:28:52,620 --> 00:28:56,030 所以,我只是要保持 突出显示和删除的东西 660 00:28:56,030 --> 00:28:59,905 我不明白, 蒸馏网址逼到这一点。 661 00:28:59,905 --> 00:29:00,920 662 00:29:00,920 --> 00:29:02,270 >> 现在,让我得到重新输入。 663 00:29:02,270 --> 00:29:03,814 它看起来像谷歌仍然有效。 664 00:29:03,814 --> 00:29:06,980 所以由于某些原因,他们增加一个 很多东西到他们的URL的默认。 665 00:29:06,980 --> 00:29:09,000 但它没有严格要求。 666 00:29:09,000 --> 00:29:10,340 那么,什么是好的,这一点? 667 00:29:10,340 --> 00:29:13,630 好吧,让我继续前进, 打开Chrome的督察。 668 00:29:13,630 --> 00:29:15,960 有一点点鼠标快捷键吧。 669 00:29:15,960 --> 00:29:17,360 >> 进入网络选项卡。 670 00:29:17,360 --> 00:29:19,340 现在让我重新加载 此页面一次。 671 00:29:19,340 --> 00:29:20,280 而且我按住Shift键。 672 00:29:20,280 --> 00:29:22,520 顺便说一句,浏览器 往往高速缓存或保存 673 00:29:22,520 --> 00:29:24,697 只是为了效率的缘故信息。 674 00:29:24,697 --> 00:29:27,280 但通常情况下,按住Shift 重装将迫使一切 675 00:29:27,280 --> 00:29:28,994 从头开始。 676 00:29:28,994 --> 00:29:30,410 而这正是我想在这里做。 677 00:29:30,410 --> 00:29:33,550 >> 并注意所有这些 那个刚刚出现的行。 678 00:29:33,550 --> 00:29:37,920 事实证明,在任何给定的网络 页,则可能是只有一个文件 679 00:29:37,920 --> 00:29:43,500 involved-- hello.html--或有 可能是52,因为在这种情况下。 680 00:29:43,500 --> 00:29:45,820 当我访问google.com, 显然,我的浏览器 681 00:29:45,820 --> 00:29:49,650 揭幕52分开的HTTP请求。 682 00:29:49,650 --> 00:29:50,520 这是为什么? 683 00:29:50,520 --> 00:29:53,380 >> 好了,看看里面有什么 这个网页往上顶。 684 00:29:53,380 --> 00:29:55,620 这里不仅是文字, 但有实际图像 685 00:29:55,620 --> 00:29:57,130 的猫科动物转移到右侧。 686 00:29:57,130 --> 00:29:59,110 有一个丰富多彩的标志在这里在左边。 687 00:29:59,110 --> 00:30:01,750 还有所有的图标 用于麦克风等。 688 00:30:01,750 --> 00:30:05,130 有很多件,建筑 块,刮片,如果你愿意, 689 00:30:05,130 --> 00:30:06,250 这个网页。 690 00:30:06,250 --> 00:30:10,310 什么样的浏览器做在 获得的第一个文件,该文件 691 00:30:10,310 --> 00:30:16,180 是此行这里时,它基本上 遍历HTML顶部 692 00:30:16,180 --> 00:30:19,880 至底部,左到右,找 之类的图像标记或其他标记 693 00:30:19,880 --> 00:30:23,160 所提到的其他的文件和 当它看到他们,去和他们取 694 00:30:23,160 --> 00:30:26,050 通过HTTP,可行全 信封比喻, 695 00:30:26,050 --> 00:30:29,670 然后在显示它们 在网页中适当的位置。 696 00:30:29,670 --> 00:30:33,370 >> 但是请注意,在这里,如果我专注于 第一掷,搜索猫, 697 00:30:33,370 --> 00:30:37,090 注意到,确实它使用HTTP 1.1。 698 00:30:37,090 --> 00:30:41,690 不幸的是,谷歌 Chrome浏览器目前已经在39版 699 00:30:41,690 --> 00:30:45,110 是一种方法简化下来,并 不向我们展示了实际的头。 700 00:30:45,110 --> 00:30:49,680 但确实是发送一个请求 不削减,但/搜索?Q =猫。 701 00:30:49,680 --> 00:30:52,830 702 00:30:52,830 --> 00:30:54,340 >> 现在,为什么是重要的? 703 00:30:54,340 --> 00:30:57,110 嗯,我要去推断 从这个,如果你谷歌 704 00:30:57,110 --> 00:31:01,520 支持这种形式,为什么查询 不我实现我自己的搜索 705 00:31:01,520 --> 00:31:06,420 发动机CS50,只是前 结束,就在图形用户界面。 706 00:31:06,420 --> 00:31:09,610 我们将外包后端, 实际的搜索结果谷歌。 707 00:31:09,610 --> 00:31:10,510 >> 所以,我怎么能这样做呢? 708 00:31:10,510 --> 00:31:13,820 好吧,让我进入gedit中在这里。 709 00:31:13,820 --> 00:31:19,180 让我继续前进,打开 了,让我们说,一个新的文件。 710 00:31:19,180 --> 00:31:22,280 而且我要救这个 暂时作为搜索-0.html。 711 00:31:22,280 --> 00:31:25,111 712 00:31:25,111 --> 00:31:27,860 然后最终,我们将快速 期待一个我事先准备好的。 713 00:31:27,860 --> 00:31:30,190 >> 而我要去 迅速掀起文档类型 714 00:31:30,190 --> 00:31:33,840 HTML打开HTML支架 靠近支架的HTML。 715 00:31:33,840 --> 00:31:38,390 然后我会做头 靠近头部公开赛冠军CS50 716 00:31:38,390 --> 00:31:40,150 搜索代替谷歌搜索。 717 00:31:40,150 --> 00:31:43,480 到这里我将有 身体,到这里靠近身体。 718 00:31:43,480 --> 00:31:45,835 现在我需要CS50搜索。 719 00:31:45,835 --> 00:31:47,710 而实际上,让我们 建立这个增量。 720 00:31:47,710 --> 00:31:51,043 我要继续前进,并关闭该和 其实把它放在我的公开目录。 721 00:31:51,043 --> 00:31:52,730 所以给我的只是一个瞬间。 722 00:31:52,730 --> 00:31:55,390 搜索0.html--我要去 时间search.html调用它。 723 00:31:55,390 --> 00:31:56,600 724 00:31:56,600 --> 00:31:59,750 我要和chmod它+ R search.html。 725 00:31:59,750 --> 00:32:01,072 726 00:32:01,072 --> 00:32:02,280 现在我要打开它。 727 00:32:02,280 --> 00:32:03,224 728 00:32:03,224 --> 00:32:04,390 好了,所以这是快。 729 00:32:04,390 --> 00:32:06,800 但我们的目标是简单的 让我们给点意见 730 00:32:06,800 --> 00:32:09,630 有此文字 文件名为​​search.html。 731 00:32:09,630 --> 00:32:10,940 732 00:32:10,940 --> 00:32:12,790 所以,没有什么好看的呢。 733 00:32:12,790 --> 00:32:16,970 事实上,如果我去我的浏览器,并 去search.html,这一切是。 734 00:32:16,970 --> 00:32:17,720 但是你知道吗? 735 00:32:17,720 --> 00:32:19,000 我可以是一个小票友。 736 00:32:19,000 --> 00:32:22,710 我在读一本书,有 标题标签称为H1。 737 00:32:22,710 --> 00:32:26,100 而且我要继续前进, 使用开放的H1和关闭H1。 738 00:32:26,100 --> 00:32:27,220 重新加载页面。 739 00:32:27,220 --> 00:32:29,600 现在它的更大,更大胆, 不是所有的有趣, 740 00:32:29,600 --> 00:32:32,399 但至少在结构上 更有趣。 741 00:32:32,399 --> 00:32:33,940 但现在让我介绍另一个标记。 742 00:32:33,940 --> 00:32:36,500 原来,有一个表单标签。 743 00:32:36,500 --> 00:32:38,400 让我关闭的标签。 744 00:32:38,400 --> 00:32:40,830 而事实证明有 输入标记, 745 00:32:40,830 --> 00:32:44,600 有一个名为类型的属性,它 是该字段的数据类型, 746 00:32:44,600 --> 00:32:45,200 如果你愿意。 747 00:32:45,200 --> 00:32:47,050 并且将是文本类型。 748 00:32:47,050 --> 00:32:52,200 它的值是怎么回事 要CS50搜索。 749 00:32:52,200 --> 00:32:53,850 关闭标签。 750 00:32:53,850 --> 00:32:57,100 而且也将是没有概念 打开和关闭与独立的标签。 751 00:32:57,100 --> 00:33:00,300 >> 让我回到了这里 看看这是怎么回事,重装。 752 00:33:00,300 --> 00:33:01,380 越来越有趣。 753 00:33:01,380 --> 00:33:02,950 它看起来就像是一个文本字段。 754 00:33:02,950 --> 00:33:04,080 755 00:33:04,080 --> 00:33:06,999 而实际上,我不想 把一个价值还没有。 756 00:33:06,999 --> 00:33:10,040 让我回到这里,并实际获得 摆脱这个值来保持它的简单。 757 00:33:10,040 --> 00:33:12,939 而不是一个值,我想要的东西 给这个事情是一个名字。 758 00:33:12,939 --> 00:33:15,230 我不知道它是什么, 所以我会回来的。 759 00:33:15,230 --> 00:33:18,270 >> 但下面这一点,我想 做INPUT TYPE =提交。 760 00:33:18,270 --> 00:33:19,840 761 00:33:19,840 --> 00:33:22,120 并且这个值将是CS50搜索。 762 00:33:22,120 --> 00:33:24,850 我们会看到为什么我 移动的价值这一点。 763 00:33:24,850 --> 00:33:28,900 当我重装,我好像现在有 我自己搜索的开始 764 00:33:28,900 --> 00:33:30,820 发动机,超可怕的, 但坦率地说,这是 765 00:33:30,820 --> 00:33:34,260 不是远远抛在了什么 谷歌的默认页面的样子。 766 00:33:34,260 --> 00:33:37,950 >> 如果我现在在这里,我可以键入 猫,希望单击搜索。 767 00:33:37,950 --> 00:33:40,380 但我没有完全完成, 因为我还没有实现, 768 00:33:40,380 --> 00:33:41,045 显然,一个数据库。 769 00:33:41,045 --> 00:33:42,940 我还没有爬的 网络搜索结果。 770 00:33:42,940 --> 00:33:44,840 所以,我需要外购,为谷歌。 771 00:33:44,840 --> 00:33:46,290 那么,如何做到这一点? 772 00:33:46,290 --> 00:33:49,170 >> 嗯,首先我的 需要补充和行动 773 00:33:49,170 --> 00:33:58,460 归功于我的表单标记, 是http://www.google.com/search。 774 00:33:58,460 --> 00:34:01,180 我知道,只有从具有 看仔细推断 775 00:34:01,180 --> 00:34:02,505 在他们的URL。 776 00:34:02,505 --> 00:34:03,380 而现在采取的猜测。 777 00:34:03,380 --> 00:34:09,090 什么应该这个文本字段可能 被称为基础上,我们来了 778 00:34:09,090 --> 00:34:09,754 从之前? 779 00:34:09,754 --> 00:34:11,896 780 00:34:11,896 --> 00:34:13,290 >> 听众:Q。 781 00:34:13,290 --> 00:34:14,370 >> 大卫·马兰:Q。 782 00:34:14,370 --> 00:34:17,800 而我们实际上并不需要的问题 纪念它的出现,但q是确实的, 783 00:34:17,800 --> 00:34:20,489 ●对于可能由查询 默认情况下,只是因为这是 784 00:34:20,489 --> 00:34:23,060 拉里和谢尔盖 想到了几年前。 785 00:34:23,060 --> 00:34:24,739 所以,现在让我重新加载该页面。 786 00:34:24,739 --> 00:34:26,409 它看起来并不都不同。 787 00:34:26,409 --> 00:34:28,120 但现在看会发生什么。 788 00:34:28,120 --> 00:34:32,360 >> 如果我输入的猫和点击 CS50搜索和放手, 789 00:34:32,360 --> 00:34:35,770 请注意,我得到护送 客场实际谷歌。 790 00:34:35,770 --> 00:34:38,150 现在,谷歌正在一点点 恼人的,因为它们是 791 00:34:38,150 --> 00:34:41,877 附加一个额外的参数, 如果你愿意,到URL。 792 00:34:41,877 --> 00:34:43,960 这一切发生 自动对谷歌的一面。 793 00:34:43,960 --> 00:34:48,730 >> 最重要的是,我似乎 要在这里产生了这一请求。 794 00:34:48,730 --> 00:34:50,179 事实上,这是发生了什么。 795 00:34:50,179 --> 00:34:53,040 当你有HTML的 看起来是这样的,这 796 00:34:53,040 --> 00:34:57,620 是某种Web开发人员表示法 这么说,就创建一个表单 797 00:34:57,620 --> 00:34:59,990 当它的提出, 它会去这个网址。 798 00:34:59,990 --> 00:35:03,430 并且当URL提供 对于喜欢的东西的Q值, 799 00:35:03,430 --> 00:35:05,440 不要去只是为了这个URL。 800 00:35:05,440 --> 00:35:08,210 其实,去质疑 标记,然后Q =猫。 801 00:35:08,210 --> 00:35:09,590 802 00:35:09,590 --> 00:35:13,060 附加的参数时, 像HTTP参数。 803 00:35:13,060 --> 00:35:15,590 >> 和刚需超精密, 什么东西被推断这里 - 804 00:35:15,590 --> 00:35:18,130 但我会更explicit--是 我想使用的方法 805 00:35:18,130 --> 00:35:22,270 为得到而不是像, 后,我们最终会看到的。 806 00:35:22,270 --> 00:35:27,710 因此,在短期,简单地理解 HTML和使用一些非常简单的标签, 807 00:35:27,710 --> 00:35:30,610 我们现在可以开始创建 我们自己的前端用户 808 00:35:30,610 --> 00:35:32,850 与搜索界面 发动机后面。 809 00:35:32,850 --> 00:35:34,800 >> 但当然这是很可怕的。 810 00:35:34,800 --> 00:35:37,259 因此,让我真正打通 一个稍微好一点的版本。 811 00:35:37,259 --> 00:35:39,800 这是我编写的一个 提前有一些意见。 812 00:35:39,800 --> 00:35:41,900 但是你会看到,我 几乎是重新创建它。 813 00:35:41,900 --> 00:35:44,150 因此,这是网上已经可用。 814 00:35:44,150 --> 00:35:48,050 我也正好先发制人 访问https只是为了保持它的简单。 815 00:35:48,050 --> 00:35:50,610 >> 现在,让我们打开了 这下一次迭代。 816 00:35:50,610 --> 00:35:52,510 是版本1,而不是0。 817 00:35:52,510 --> 00:35:55,315 什么跳出你的稍微 在这个例子中有什么不同? 818 00:35:55,315 --> 00:35:59,480 819 00:35:59,480 --> 00:36:00,440 >> 听众:[听不清]。 820 00:36:00,440 --> 00:36:03,020 >> 是啊,有这样的文字居中。 821 00:36:03,020 --> 00:36:04,590 这是一个有点怪异了这里。 822 00:36:04,590 --> 00:36:06,150 但是,这确实是新的。 823 00:36:06,150 --> 00:36:07,800 也许猜到了什么事情发生。 824 00:36:07,800 --> 00:36:11,730 如果我去我现在的浏览器 参观搜索1.HTML, 825 00:36:11,730 --> 00:36:13,090 这几乎是同样的事情。 826 00:36:13,090 --> 00:36:15,705 但它是更近了一步 是多了几分可爱。 827 00:36:15,705 --> 00:36:19,150 它仍然是丑陋的,但在那漂亮 至少一切的,现在居中。 828 00:36:19,150 --> 00:36:23,470 >> 所以,事实证明,我正在使用 在另一种语言完全叫 829 00:36:23,470 --> 00:36:25,680 CSS,层叠样式表。 830 00:36:25,680 --> 00:36:28,310 和CSS,坦率地说,是一种 ,在我个人看来, 831 00:36:28,310 --> 00:36:29,775 一个残暴的设计语言。 832 00:36:29,775 --> 00:36:33,110 这是非常恼人的记忆 所有的各种细节。 833 00:36:33,110 --> 00:36:38,479 但它是什么stylizes的 整个万维网今天。 834 00:36:38,479 --> 00:36:39,270 我得罪人。 835 00:36:39,270 --> 00:36:39,769 行。 836 00:36:39,769 --> 00:36:43,180 所以,让我们回到这里,看看 怎么我们实际上用这个。 837 00:36:43,180 --> 00:36:45,940 而事实证明,至少它的 实际上是一个非常简单的语言。 838 00:36:45,940 --> 00:36:49,470 这只是键值对,性质 和值,属性和值。 839 00:36:49,470 --> 00:36:52,080 事实上,这里是1 这样的属性和值。 840 00:36:52,080 --> 00:36:55,890 >> 只需通过使用样式 属性在我身上的标签 841 00:36:55,890 --> 00:37:00,360 并给它的值 字结肠和另一单词, 842 00:37:00,360 --> 00:37:03,730 或一个属性和一个值, 我会影响美观 843 00:37:03,730 --> 00:37:06,210 的网页,而不是对 不一定但该结构中, 844 00:37:06,210 --> 00:37:07,550 但它的美观性。 845 00:37:07,550 --> 00:37:10,960 而就在谷歌搜索的时候,我意识到 该CSS,层叠样式表, 846 00:37:10,960 --> 00:37:14,170 支持一个名为属性 文本对齐,其值可以 847 00:37:14,170 --> 00:37:16,980 将左,右或中心,例如。 848 00:37:16,980 --> 00:37:19,990 >> 所以,现在当我重新加载 这一页,我没拿到 849 00:37:19,990 --> 00:37:22,730 是一个居中的页面, 但仍然相当难看。 850 00:37:22,730 --> 00:37:25,770 让我们继续前进,打开 搜索了第2版。 851 00:37:25,770 --> 00:37:28,570 现在发现我做多一点。 852 00:37:28,570 --> 00:37:33,760 注意,在这里的头部的里面 标记,可以有多于标题。 853 00:37:33,760 --> 00:37:35,400 事实上,有一个风格的标签。 854 00:37:35,400 --> 00:37:38,630 而这正是它只是得到了 有点乱眼看CSS的时候。 855 00:37:38,630 --> 00:37:41,971 >> 请注意,我好像有东西 在结构上看起来非常不同。 856 00:37:41,971 --> 00:37:44,095 但这里是名 我想要的标签程式化。 857 00:37:44,095 --> 00:37:47,570 这是我们的老朋友卷发 括号和封闭的大括号。 858 00:37:47,570 --> 00:37:50,290 然后这里是 属性和它的值。 859 00:37:50,290 --> 00:37:56,300 >> 如果我打开这个文件,search2.html, 最终的结果是相同的。 860 00:37:56,300 --> 00:37:59,300 但它是朝着更好的设计的一个步骤。 861 00:37:59,300 --> 00:38:04,560 通过分解出这个CSS,我已经 不符合我的HTML混合的。 862 00:38:04,560 --> 00:38:07,560 事实上,正如我们所看到的,我可以 重新使用这些属性和值。 863 00:38:07,560 --> 00:38:10,420 如果我要拍的串 我的网页的部分为中心, 864 00:38:10,420 --> 00:38:13,630 我不必键入风格=文本对齐 中心所有的地方。 865 00:38:13,630 --> 00:38:16,580 我可以在一个地方 或许,就像在顶部。 866 00:38:16,580 --> 00:38:18,210 >> 但是,即使这不是最好的设计。 867 00:38:18,210 --> 00:38:21,720 事实上,其中的一件事,你将学习 因为你花更多的时间与 868 00:38:21,720 --> 00:38:25,730 网络编程的,你就可以 模块化的东西和因素的事情了 869 00:38:25,730 --> 00:38:30,610 像.h文件让我们因数的东西出来, 喜欢helpers.c让我们因子的事情了 870 00:38:30,610 --> 00:38:31,880 一些pset中前。 871 00:38:31,880 --> 00:38:34,200 同样地,我们可能 要实现这一点。 872 00:38:34,200 --> 00:38:37,920 >> 因此,在版本通知 3 search.html我已经 873 00:38:37,920 --> 00:38:40,610 清理的头 页面,只是把 874 00:38:40,610 --> 00:38:43,320 在此,一个链接标记,这 相反的名称, 875 00:38:43,320 --> 00:38:44,700 不给你一个超链接。 876 00:38:44,700 --> 00:38:49,150 它通过的方式链接到另一个文件 一个href其值在这种情况下, 877 00:38:49,150 --> 00:38:51,586 是搜索3.css 878 00:38:51,586 --> 00:38:52,960 所以,我知道我们要快。 879 00:38:52,960 --> 00:38:54,600 但是,所有我做的是怎么样 中移动周围的事物。 880 00:38:54,600 --> 00:38:55,760 让我打开搜索3.css。 881 00:38:55,760 --> 00:38:57,114 882 00:38:57,114 --> 00:38:58,530 就在那儿,没有什么吧。 883 00:38:58,530 --> 00:39:02,270 我只是复制并粘贴到一个新的 文件,就像我们分解出来的东西 884 00:39:02,270 --> 00:39:03,509 进入之前的其他文件。 885 00:39:03,509 --> 00:39:05,300 和result-- 完全underwhelming-- 886 00:39:05,300 --> 00:39:06,730 将是完全一样的。 887 00:39:06,730 --> 00:39:10,490 但是,我们正在toward--不,它不是。 888 00:39:10,490 --> 00:39:11,930 哦,我知道为什么。 889 00:39:11,930 --> 00:39:13,790 >> 因此,它似乎是一个错误。 890 00:39:13,790 --> 00:39:15,010 它在某种意义上是。 891 00:39:15,010 --> 00:39:17,730 不过,让我打开我的网络标签。 892 00:39:17,730 --> 00:39:19,660 让我重新加载页面。 893 00:39:19,660 --> 00:39:23,315 啊,为什么是CSS没有被应用? 894 00:39:23,315 --> 00:39:26,920 那么,CSS文件,同样,有 是世界可读的,可以这么说。 895 00:39:26,920 --> 00:39:28,440 而它也正在被禁止。 896 00:39:28,440 --> 00:39:33,760 因此,让我做一个存取权限chmod a + R 星点CSS-- whoops-- 897 00:39:33,760 --> 00:39:37,067 我们点CSS仅仅是 文件扩展名的CSS文件。 898 00:39:37,067 --> 00:39:38,900 现在让我回去 我的浏览器和重载。 899 00:39:38,900 --> 00:39:40,910 OK,好一点。 900 00:39:40,910 --> 00:39:42,282 >> 现在让我做最后一件事。 901 00:39:42,282 --> 00:39:42,990 在搜索4.html。 902 00:39:42,990 --> 00:39:44,550 903 00:39:44,550 --> 00:39:48,220 我说我只是想一个版本 是这样凉,虽然这样更 904 00:39:48,220 --> 00:39:48,980 复杂的。 905 00:39:48,980 --> 00:39:50,690 让我们来看看结果第一次。 906 00:39:50,690 --> 00:39:52,290 关闭这个给我们更多的空间。 907 00:39:52,290 --> 00:39:54,275 改变这种搜索-4,回车。 908 00:39:54,275 --> 00:39:55,430 909 00:39:55,430 --> 00:39:57,200 >> 现在一堆东西被打破。 910 00:39:57,200 --> 00:39:59,910 我要回去 进入我的目录位置。 911 00:39:59,910 --> 00:40:04,190 而现在我只是做 一+ R上file--在chmod 912 00:40:04,190 --> 00:40:07,450 因为我知道它叫exists-- logo.gif,这是一个图像。 913 00:40:07,450 --> 00:40:08,590 而现在重装。 914 00:40:08,590 --> 00:40:11,040 和wow--所以现在我 八九不离十,坦率地说, 915 00:40:11,040 --> 00:40:15,860 喜欢1999年的版本,谷歌,以及 坦率地说,2014年版的谷歌, 916 00:40:15,860 --> 00:40:16,360 对不对? 917 00:40:16,360 --> 00:40:21,920 >> 所以它现在要他们的网站, 最终,如果我搜索的猫。 918 00:40:21,920 --> 00:40:23,900 的确是。 919 00:40:23,900 --> 00:40:26,410 但我做了什么不同 在这个版本4? 920 00:40:26,410 --> 00:40:28,020 所以我们不会过多谈论在这里。 921 00:40:28,020 --> 00:40:30,100 你会看到这个问题, 集7最终。 922 00:40:30,100 --> 00:40:31,350 但是请注意,我做了几件事情。 923 00:40:31,350 --> 00:40:33,690 >> 我介绍一个div 标签,这是师, 924 00:40:33,690 --> 00:40:35,450 类似的精神,一个段落标记。 925 00:40:35,450 --> 00:40:38,220 但是,一个部门就像是,这里的 一个长方形的不可见区域 926 00:40:38,220 --> 00:40:39,150 屏幕。 927 00:40:39,150 --> 00:40:41,680 让我们给它一个独特的 标识符,页脚,只是 928 00:40:41,680 --> 00:40:44,700 这样我们就可以谈 它在其他地方我们的HTML。 929 00:40:44,700 --> 00:40:47,952 这里是页的另一种格 其ID将是内容。 930 00:40:47,952 --> 00:40:49,160 它是该页面的内容。 931 00:40:49,160 --> 00:40:51,090 而且在这里是页的标题中。 932 00:40:51,090 --> 00:40:54,960 >> 换句话说,我已经 实际上在HTML中很弱智 933 00:40:54,960 --> 00:40:57,700 查看此网页的 三部分组成,一个头 934 00:40:57,700 --> 00:41:01,200 在这里用这种无形的矩形, 在中间的内容,然后 935 00:41:01,200 --> 00:41:04,800 页脚向下跌破,甚至 虽然我们没有看到那些东西。 936 00:41:04,800 --> 00:41:09,940 因为我想在我的脑海中 在此页面,或在.css文件, 937 00:41:09,940 --> 00:41:11,460 我可以用这个语法。 938 00:41:11,460 --> 00:41:13,070 >> 头是不是一个标签。 939 00:41:13,070 --> 00:41:17,060 这是一个ID,因此它变成 指出,这样做的#header, 940 00:41:17,060 --> 00:41:20,840 我现在可以申请一个或多个 属性的报头。 941 00:41:20,840 --> 00:41:24,130 我可以做同样的内容, 同样对于这里的内容。 942 00:41:24,130 --> 00:41:27,230 >> 因此,例如,在页脚,通知 所有这些特性,我加入。 943 00:41:27,230 --> 00:41:30,660 我知道它们的存在仅仅通过阅读 了对CSS的文档。 944 00:41:30,660 --> 00:41:33,450 字体大小将是smaller-- 因此一些相对字号。 945 00:41:33,450 --> 00:41:34,741 权重将是大胆的。 946 00:41:34,741 --> 00:41:37,340 Margin--多少像素 围绕它 - 是20个像素。 947 00:41:37,340 --> 00:41:38,590 而且它会为中心。 948 00:41:38,590 --> 00:41:40,256 >> 但现在,页面看起来是这样的。 949 00:41:40,256 --> 00:41:42,840 如果我不喜欢的 我的副本就在那里, 950 00:41:42,840 --> 00:41:46,560 我可以不喜欢红色。 951 00:41:46,560 --> 00:41:50,570 然后我就可以节省这一点,重新加载, 现在我已经程式化页脚。 952 00:41:50,570 --> 00:41:54,130 所以这只是暗示的力量 你可以在一个网页怎么办 953 00:41:54,130 --> 00:41:55,510 改变周围的事物。 954 00:41:55,510 --> 00:41:59,080 >> 而比这更酷,如果你想 闲逛实际的网站, 955 00:41:59,080 --> 00:42:00,810 你永远不能改变他们。 956 00:42:00,810 --> 00:42:03,640 但是,如果我打开 再次Chrome的督察 957 00:42:03,640 --> 00:42:07,610 我去不要的左手侧 在这里,这说明Facebook的HTML, 958 00:42:07,610 --> 00:42:11,380 但在右图所示 右手边所有的CSS, 959 00:42:11,380 --> 00:42:13,789 您可以和 在运行中改变的东西。 960 00:42:13,789 --> 00:42:15,080 因此,让我继续前进,做到这一点。 961 00:42:15,080 --> 00:42:18,670 >> 让我继续前进,控制 在这个随机单词点击这里, 962 00:42:18,670 --> 00:42:21,230 签字,然后单击检查元素。 963 00:42:21,230 --> 00:42:25,130 Chrome浏览器很方便地跳转到 Facebook是用h1标签。 964 00:42:25,130 --> 00:42:27,290 并请注意这里的Facebook 有一种懒洋洋 965 00:42:27,290 --> 00:42:29,960 硬编码的字体大小为这里的属性。 966 00:42:29,960 --> 00:42:33,530 >> 因此,很酷的事情,虽然是 如果我真的去这里 967 00:42:33,530 --> 00:42:39,560 并说,哦,Facebook的,我不喜欢这样 64个像素,我们可以改变现在的Facebook。 968 00:42:39,560 --> 00:42:42,590 当然,我们只是改变它 对我个人的时刻。 969 00:42:42,590 --> 00:42:45,150 但是,这仅仅是另一个 工具在我们的工具包 970 00:42:45,150 --> 00:42:48,360 那将让我们能够调整 并找出和诊断也 971 00:42:48,360 --> 00:42:49,729 问题在我们自己的网页。 972 00:42:49,729 --> 00:42:52,270 我们可以同样地走了过来 在这里,这是同一件事。 973 00:42:52,270 --> 00:42:55,830 如果你真的想获得幻想,我 意思是说,现在你真的可以发生变异的页面 974 00:42:55,830 --> 00:42:57,380 做疯狂的事情。 975 00:42:57,380 --> 00:42:59,870 >> 那么,为什么这一切有用吗? 976 00:42:59,870 --> 00:43:02,330 好了,最后,我们 将要成为 977 00:43:02,330 --> 00:43:07,110 能够创建Web页面 通过我们自己的后端驱动, 978 00:43:07,110 --> 00:43:10,520 不只是谷歌和 外包后端存在。 979 00:43:10,520 --> 00:43:13,510 我们真正想要的 值,例如 980 00:43:13,510 --> 00:43:18,830 我们的搜索引擎的作用 属性去不是别人, 981 00:43:18,830 --> 00:43:24,270 但像search.php中, 那里的search.php是我们自己的服务器上, 982 00:43:24,270 --> 00:43:25,670 而不是别人的。 983 00:43:25,670 --> 00:43:30,316 >> 所以到那里,我们其实 需要引入一种新的语言。 984 00:43:30,316 --> 00:43:33,190 因此,我们已经看了一眼新 这里的语言,或两个真的,HTML 985 00:43:33,190 --> 00:43:33,700 和CSS。 986 00:43:33,700 --> 00:43:36,330 但他们真的只是 结构和审美语言。 987 00:43:36,330 --> 00:43:38,360 他们不是编程 语言本身。 988 00:43:38,360 --> 00:43:41,160 那就是尽可能多的正式 时间,我们将花费在他们身上。 989 00:43:41,160 --> 00:43:44,910 因为我们现在将开始 转换到PHP。 990 00:43:44,910 --> 00:43:48,160 >> 所以,PHP是一个实际的 编程语言。 991 00:43:48,160 --> 00:43:50,750 这是一个脚本语言 在这个意义上,它的 992 00:43:50,750 --> 00:43:52,855 意思是重量更轻 不是像C. 993 00:43:52,855 --> 00:43:56,082 它是一种解释型语言, 这意味着它不会被编译。 994 00:43:56,082 --> 00:43:58,790 因此,概括地说,这是什么意思 当我们使用类似C语言 995 00:43:58,790 --> 00:44:00,290 我们不得不去编译它? 996 00:44:00,290 --> 00:44:02,120 什么意思 编译C源代码? 997 00:44:02,120 --> 00:44:03,864 998 00:44:03,864 --> 00:44:04,780 听众:[听不清]。 999 00:44:04,780 --> 00:44:06,184 大卫·马兰:再说一遍吗? 1000 00:44:06,184 --> 00:44:07,100 听众:[听不清]。 1001 00:44:07,100 --> 00:44:07,962 1002 00:44:07,962 --> 00:44:08,920 大卫·马兰:完美。 1003 00:44:08,920 --> 00:44:10,180 它把它变成二进制代码。 1004 00:44:10,180 --> 00:44:14,200 它把它变成零和一 从实际的类似英语的源代码。 1005 00:44:14,200 --> 00:44:16,424 然后我们就可以真正 运行这些零和一 1006 00:44:16,424 --> 00:44:18,840 通过在将它们传递 CPU通过双击图标 1007 00:44:18,840 --> 00:44:19,980 或者运行一个命令。 1008 00:44:19,980 --> 00:44:23,770 >> PHP和Python和Ruby 和Perl和JavaScript 1009 00:44:23,770 --> 00:44:26,250 和其他的串 语言的解释 1010 00:44:26,250 --> 00:44:29,290 语言,这是说 你不编译它们。 1011 00:44:29,290 --> 00:44:34,220 相反,你喂它们作为输入 一个程序调用一个解释。 1012 00:44:34,220 --> 00:44:36,640 并且解释, 这别人写的, 1013 00:44:36,640 --> 00:44:40,930 读取您的源代码,从上到下, 左到右,只是解译 1014 00:44:40,930 --> 00:44:43,000 那些线条和做什么,你说​​。 1015 00:44:43,000 --> 00:44:45,360 >> 所以,如果你遇到一个 该行表示,打印, 1016 00:44:45,360 --> 00:44:48,660 它不一定转换打印 为相应的零和一。 1017 00:44:48,660 --> 00:44:51,910 它只是有这种类似的解释 一个大的if条件,上面写着: 1018 00:44:51,910 --> 00:44:56,110 如果程序员的指令 打印,然后执行以下操作。 1019 00:44:56,110 --> 00:44:58,170 所以它只是把它解释 通过一种推理 1020 00:44:58,170 --> 00:44:59,800 通过什么你告诉它做的事。 1021 00:44:59,800 --> 00:45:01,320 >> 而PHP是其中一种语言。 1022 00:45:01,320 --> 00:45:05,310 和PHP年前设计 正是基于web编程。 1023 00:45:05,310 --> 00:45:08,160 它最初是一个 很邋遢凌乱的语言。 1024 00:45:08,160 --> 00:45:10,940 事实上,有一个巨大的 量差的PHP代码在那里。 1025 00:45:10,940 --> 00:45:13,520 但是语言本身 已经成熟,多年来, 1026 00:45:13,520 --> 00:45:16,200 以至于现在它的 实际上是一个美妙的下一步 1027 00:45:16,200 --> 00:45:19,970 教学上从C,因为它是 所以该死的熟悉的一切 1028 00:45:19,970 --> 00:45:22,380 你刚才看到的,在过去​​的几个星期。 1029 00:45:22,380 --> 00:45:25,724 >> 我们将看到一个初始的区别 是没有的主要功能了。 1030 00:45:25,724 --> 00:45:28,890 当你开始写代码,它只是 要得到执行,不管是什么, 1031 00:45:28,890 --> 00:45:30,220 正如我们将看到一个时刻。 1032 00:45:30,220 --> 00:45:33,320 同时,这里就是一个 变量看起来像在PHP。 1033 00:45:33,320 --> 00:45:35,840 这是一个有点不同的, 但只是勉强。 1034 00:45:35,840 --> 00:45:39,380 >> 在PHP中,有没有强类型。 1035 00:45:39,380 --> 00:45:41,430 还有一周打字, 这只是意味着有 1036 00:45:41,430 --> 00:45:44,030 有数据类型,如字符串 和数字和其他东西。 1037 00:45:44,030 --> 00:45:47,030 但是,你不要打扰指定 他们是什么样了。 1038 00:45:47,030 --> 00:45:48,980 PHP的数字出来给你。 1039 00:45:48,980 --> 00:45:52,030 美元符号仅仅是一个决策 该PHP的人做年 1040 00:45:52,030 --> 00:45:54,890 以前,这样在PHP中的任何变量 刚开始用一个美元符号。 1041 00:45:54,890 --> 00:45:58,130 它是一种真正的有用 它跳出你多一点。 1042 00:45:58,130 --> 00:46:01,315 >> 但在此之后,这 在PHP中的条件。 1043 00:46:01,315 --> 00:46:03,140 1044 00:46:03,140 --> 00:46:04,730 有什么不同的对C? 1045 00:46:04,730 --> 00:46:07,180 1046 00:46:07,180 --> 00:46:09,600 欺骗question--什么, 这实际上是非常好的。 1047 00:46:09,600 --> 00:46:12,140 布尔表达式PHP--相同。 1048 00:46:12,140 --> 00:46:19,354 同和与布尔表达式 或者,开关,循环,循环,loops-- OK, 1049 00:46:19,354 --> 00:46:20,270 这个人是不同的。 1050 00:46:20,270 --> 00:46:22,660 >> 因此,原来有一个 情侣在PHP中的其他功能。 1051 00:46:22,660 --> 00:46:25,243 其中之一就是实际上这一点, 这是奇妙的方便。 1052 00:46:25,243 --> 00:46:29,250 如果$的数字是,你已经一个数组 在程序中事先声明, 1053 00:46:29,250 --> 00:46:33,350 你有这样奇特的每个构造 这样做,而不是所有的 1054 00:46:33,350 --> 00:46:37,020 讨厌我等于0,我是 低于此,[? I ++?] 1055 00:46:37,020 --> 00:46:40,320 每个数字作为编号,其中每个 那些美元符号的值就是 1056 00:46:40,320 --> 00:46:42,790 一个变量,而后者 你能想到的是一 1057 00:46:42,790 --> 00:46:44,290 你可以把它叫做任何你想要的。 1058 00:46:44,290 --> 00:46:45,770 我把它叫做数字。 1059 00:46:45,770 --> 00:46:48,825 这是要遍历 数组被叫号码。 1060 00:46:48,825 --> 00:46:51,200 并在每个迭代中,它是 要自动更新 1061 00:46:51,200 --> 00:46:54,340 为你的美元符号数 变量使你不断 1062 00:46:54,340 --> 00:46:58,210 有机会获得你想要的变量 无需做任何括号 1063 00:46:58,210 --> 00:47:00,980 符号或索引到一个数组中。 1064 00:47:00,980 --> 00:47:04,950 >> 除此之外,我们甚至有类似的东西 数组,这看上去几乎相同, 1065 00:47:04,950 --> 00:47:08,210 除非这是非常常见的,如我们 看,无论是在PHP和JavaScript 1066 00:47:08,210 --> 00:47:10,750 预初始化数组 使用方括号。 1067 00:47:10,750 --> 00:47:12,040 C使用大括号。 1068 00:47:12,040 --> 00:47:15,330 因此,它是略有不同的,即使 我们并没有真正使用的伎俩了。 1069 00:47:15,330 --> 00:47:20,090 >> 但更强大的是, PHP有关联数组, 1070 00:47:20,090 --> 00:47:23,100 这是一种奇特的方式 说法哈希表。 1071 00:47:23,100 --> 00:47:31,610 事实上,如果你想声明一个哈希 表在PHP中,不像在C--多少 1072 00:47:31,610 --> 00:47:34,775 代码行花了来 真正实现在C语言的哈希表? 1073 00:47:34,775 --> 00:47:38,310 或者有多少行代码是 以C语言实现一个哈希表? 1074 00:47:38,310 --> 00:47:39,820 因此,它可能是一个很大吧? 1075 00:47:39,820 --> 00:47:41,680 这是几十个,也许100或200。 1076 00:47:41,680 --> 00:47:42,980 这是平凡的。 1077 00:47:42,980 --> 00:47:45,420 或者它即将被作为 您很快就会看到,平凡 1078 00:47:45,420 --> 00:47:48,080 实现一个哈希表 [听不清],也是一个尝试。 1079 00:47:48,080 --> 00:47:50,580 但在PHP--坦率地说,我 或许不应该告诉你这 1080 00:47:50,580 --> 00:47:53,630 直到Monday--在PHP中,如果 你想有一个表,完成。 1081 00:47:53,630 --> 00:47:56,431 这是一个哈希table--这样 用一行代码。 1082 00:47:56,431 --> 00:47:56,930 和 1083 00:47:56,930 --> 00:47:58,810 >> 很多语言做到这一点。 1084 00:47:58,810 --> 00:48:00,190 有乐趣的PSET 5。 1085 00:48:00,190 --> 00:48:01,980 所以很多语言做到这一点。 1086 00:48:01,980 --> 00:48:03,050 1087 00:48:03,050 --> 00:48:06,140 他们给你的这些抽象 其他人,其他程序员, 1088 00:48:06,140 --> 00:48:09,870 为你创造这样 你可以站在他们的肩膀上 1089 00:48:09,870 --> 00:48:13,290 并开始使用的想法是超 引人注目的,像哈希表和树 1090 00:48:13,290 --> 00:48:14,140 并尝试。 1091 00:48:14,140 --> 00:48:17,790 但你不一定要 实现这些东西自己。 1092 00:48:17,790 --> 00:48:20,850 >> 因此,最终,有什么 我们将使用PHP 1093 00:48:20,850 --> 00:48:23,580 可能是写程序 所谓的命令行。 1094 00:48:23,580 --> 00:48:26,600 我们可以重新创建每个程序 我们已经写了本学期迄今, 1095 00:48:26,600 --> 00:48:30,410 也许除了突围它采用SPL, 这是专门针对C的时刻。 1096 00:48:30,410 --> 00:48:33,100 但是,所有其他问题集, 当然马里奥和恺撒 1097 00:48:33,100 --> 00:48:35,300 和的V @ genere和 [?破解?]及以后,我们 1098 00:48:35,300 --> 00:48:39,520 可以重新实现在PHP中,和 可能有点更容易。 1099 00:48:39,520 --> 00:48:43,050 >> 但我们最终会 用PHP的Web编程。 1100 00:48:43,050 --> 00:48:46,420 而我们将要介绍下一个 一周的心理模型,一个叫范 1101 00:48:46,420 --> 00:48:49,610 MVC,模型视图控制器, 其中,如果你做编程 1102 00:48:49,610 --> 00:48:51,610 之前在Python或 Ruby或其他地方,你 1103 00:48:51,610 --> 00:48:54,112 可能知道这​​支球队与 Rails和Django和等。 1104 00:48:54,112 --> 00:48:55,820 但如果你是新来 这也太,你会看到 1105 00:48:55,820 --> 00:48:59,652 这其实是一个很自然的 延伸因子的 1106 00:48:59,652 --> 00:49:01,360 和设计的那种 的代码,我们已经 1107 00:49:01,360 --> 00:49:04,670 一直在做C.我们要现在 运用其中的一些教训,PHP 1108 00:49:04,670 --> 00:49:07,190 所以,最终,我们是 实现我们自己的网站。 1109 00:49:07,190 --> 00:49:09,080 如果你是那种 催眠或惊奇 1110 00:49:09,080 --> 00:49:10,954 我们要做的 所有的这么快, 1111 00:49:10,954 --> 00:49:13,410 认识到,几乎每 学期中,近90% 1112 00:49:13,410 --> 00:49:16,560 学生CS50,包括那些 谁从来没有编程之前, 1113 00:49:16,560 --> 00:49:20,329 最终使最终的项目 基于web编程。 1114 00:49:20,329 --> 00:49:23,120 所以你会看到回报 高在几周来。 1115 00:49:23,120 --> 00:49:24,965 所以我们会看到你,然后在星期一。 1116 00:49:24,965 --> 00:49:27,260 1117 00:49:27,260 --> 00:49:30,120 >> 扬声器1:现在,深 思考了Daven法纳姆。 1118 00:49:30,120 --> 00:49:34,055 1119 00:49:34,055 --> 00:49:34,780 哈希表。 1120 00:49:34,780 --> 00:49:37,180 1121 00:49:37,180 --> 00:49:38,402 >> [笑] 1122 00:49:38,402 --> 00:49:38,902