1 00:00:00,000 --> 00:00:05,950 2 00:00:05,950 --> 00:00:09,310 >> SPEAKER: Hãy nói về một protocol-- Hypertext Transfer 3 00:00:09,310 --> 00:00:12,060 Nghị định thư, hoặc HTTP. 4 00:00:12,060 --> 00:00:15,074 Vì vậy, chúng tôi đã nói chuyện về IP và TCP trong video trước đó. 5 00:00:15,074 --> 00:00:17,240 Và đó là những giao thức rằng lệnh như thế nào thông tin 6 00:00:17,240 --> 00:00:20,970 di chuyển từ máy tính đến máy tính và từ chương trình để chương trình hoặc dịch vụ 7 00:00:20,970 --> 00:00:27,720 để phục vụ thông qua internet, qua mạng lưới này của router và máy móc. 8 00:00:27,720 --> 00:00:30,640 >> Nhưng đó là thường không toàn bộ hình ảnh, phải không? 9 00:00:30,640 --> 00:00:33,530 Thông thường khi chúng tôi gửi thông tin, chương trình 10 00:00:33,530 --> 00:00:36,570 itself-- khi dữ liệu là nhận, nói rằng, ví dụ, 11 00:00:36,570 --> 00:00:44,270 trong email thông qua cổng TCP 25 hoặc một web yêu cầu trang thông qua cổng 80, 12 00:00:44,270 --> 00:00:48,220 có thường là một hệ thống các quy tắc có để xử lý những gì tôi vừa mới nhận được. 13 00:00:48,220 --> 00:00:51,960 Và HTTP là một ví dụ chỉ là một giao thức như vậy. 14 00:00:51,960 --> 00:00:54,929 >> HTTP là chỉ giao thức lớp ứng dụng 15 00:00:54,929 --> 00:00:56,220 rằng chúng ta sẽ nói về. 16 00:00:56,220 --> 00:00:59,660 Nhưng nó là thiết lập khác các quy tắc đưa ra mệnh lệnh như thế nào 17 00:00:59,660 --> 00:01:02,790 thông tin được truyền đi và xử lý thông qua internet. 18 00:01:02,790 --> 00:01:06,390 Đặc biệt, HTTP quy định cụ thể chính xác như thế nào 19 00:01:06,390 --> 00:01:11,300 người ta phải tạo một yêu cầu cho một trang web và chính xác như thế nào 20 00:01:11,300 --> 00:01:15,160 một máy chủ, một máy mà chủ các trang web, 21 00:01:15,160 --> 00:01:17,840 cung cấp thông tin sao cho các khách hàng. 22 00:01:17,840 --> 00:01:20,010 >> Vì vậy, giao thức này không thực sự có bất cứ điều gì 23 00:01:20,010 --> 00:01:22,270 để làm với cách thông tin di chuyển từ điểm A 24 00:01:22,270 --> 00:01:26,090 đến điểm B. Nó thực sự hệ thống quy 25 00:01:26,090 --> 00:01:29,700 for-- nó về cơ bản các quy tắc của tham gia để làm việc với một trang web, 26 00:01:29,700 --> 00:01:31,960 tương tự như khi ai đó sóng bàn tay của họ vào bạn, 27 00:01:31,960 --> 00:01:33,410 bạn đang nghĩ để vẫy lại. 28 00:01:33,410 --> 00:01:36,280 Đó là loại một giao thức con người thông thường. 29 00:01:36,280 --> 00:01:39,610 Giao thức HTTP chỉ nói, nếu bạn muốn yêu cầu một web 30 00:01:39,610 --> 00:01:42,730 trang, đảm bảo định dạng ngoại hình của bạn như this-- loại định dạng như 31 00:01:42,730 --> 00:01:44,930 một lá thư kinh doanh, ví dụ. 32 00:01:44,930 --> 00:01:50,029 Và phản ứng sẽ tương tự đi theo giao thức này. 33 00:01:50,029 --> 00:01:51,820 Có khác các giao thức lớp ứng dụng 34 00:01:51,820 --> 00:01:53,380 rằng chúng ta sẽ không nói về trong video. 35 00:01:53,380 --> 00:01:55,790 Nhưng những bao gồm những thứ như File Transfer Protocol, 36 00:01:55,790 --> 00:01:59,200 Simple Mail Transfer Protocol cho gửi email, các phân phối dữ liệu 37 00:01:59,200 --> 00:02:02,100 Dịch vụ, Remote Desktop Nghị định thư, RDP, mà 38 00:02:02,100 --> 00:02:05,590 được sử dụng nếu bạn muốn truy cập từ xa máy tính của bạn từ một máy tính khác, 39 00:02:05,590 --> 00:02:08,479 XMPP, đó là thường xuyên được gọi là Jabber hoặc chat, 40 00:02:08,479 --> 00:02:11,160 vì vậy đây là giao thức sử dụng dịch vụ chat. 41 00:02:11,160 --> 00:02:13,310 Và có rất nhiều, rất nhiều, rất nhiều người khác. 42 00:02:13,310 --> 00:02:15,900 >> Vì vậy, mỗi khi bạn đang sử dụng một dịch vụ, dịch vụ 43 00:02:15,900 --> 00:02:18,930 được mong đợi thông tin được received-- một yêu cầu 44 00:02:18,930 --> 00:02:21,010 được received-- trong một định dạng đặc biệt rất 45 00:02:21,010 --> 00:02:24,070 và được yêu cầu trả về thông tin trở lại 46 00:02:24,070 --> 00:02:27,190 trong một định dạng rất đặc biệt là tốt. 47 00:02:27,190 --> 00:02:31,750 >> Vì vậy, chúng ta hãy quay trở lại để minh họa của chúng tôi chúng ta muốn nói chuyện với internet. 48 00:02:31,750 --> 00:02:34,810 Vì vậy, chúng tôi đang hạnh phúc, và chúng tôi muốn để đi đến cats.com, phải không? 49 00:02:34,810 --> 00:02:38,550 Vì vậy, nếu chúng ta chỉ nói chuyện với cats.com, chúng ta có thể nói một cái gì đó giống như hey, 50 00:02:38,550 --> 00:02:39,720 Tôi có thể nhìn thấy trang chủ của bạn? 51 00:02:39,720 --> 00:02:42,320 Và có thể sẽ cats.com đáp ứng, vâng, chắc chắn. 52 00:02:42,320 --> 00:02:43,440 Ở đây bạn đi. 53 00:02:43,440 --> 00:02:46,440 Vì vậy, đó là một loại con người các yêu cầu và trả lời. 54 00:02:46,440 --> 00:02:47,980 >> Có gì đó giống cái trong HTTP? 55 00:02:47,980 --> 00:02:51,340 Vâng, nó thực sự loại dịch khá sạch sẽ để một cái gì đó như thế này. 56 00:02:51,340 --> 00:02:57,290 Chúng tôi có thể nói GET / HTTP / 1.1 từ máy chủ cats.com. 57 00:02:57,290 --> 00:03:03,039 Vì vậy, về cơ bản những gì tôi đang làm ở đây là yêu cầu cho các www.cats.com/ trang web. 58 00:03:03,039 --> 00:03:05,330 Chúng ta thường bỏ qua các dấu gạch chéo ngày nay, nhưng đó sẽ chỉ là 59 00:03:05,330 --> 00:03:07,200 có nghĩa là trang web của cats.com. 60 00:03:07,200 --> 00:03:11,910 >> Oh, và bằng cách này, tôi sẽ được sử dụng phiên bản HTTP 61 00:03:11,910 --> 00:03:14,182 1.1 để giao tiếp với bạn. 62 00:03:14,182 --> 00:03:16,390 Đó là loại tương tự nói, như thế, bằng cách này, 63 00:03:16,390 --> 00:03:17,870 Tôi sẽ được nói ở Pháp, hoặc bằng cách này, 64 00:03:17,870 --> 00:03:19,370 Tôi sẽ nói bằng tiếng Anh. 65 00:03:19,370 --> 00:03:22,160 Đó chỉ là định dạng của các giao thức. 66 00:03:22,160 --> 00:03:25,050 Nó cũng 1.0, đó là không thường được sử dụng nữa. 67 00:03:25,050 --> 00:03:30,615 Vì vậy, tôi đang nói HTTP 1.1, và Tôi muốn www.cats.com/. 68 00:03:30,615 --> 00:03:31,710 Xin vui lòng nhận được rằng đối với tôi. 69 00:03:31,710 --> 00:03:34,610 >> Và sau đó có các thông tin khác, too-- các dấu chấm, dấu chấm, dấu chấm ở đó, 70 00:03:34,610 --> 00:03:38,234 đó là thông tin về bạn là ai vậy cats.com 71 00:03:38,234 --> 00:03:39,400 sẽ biết được nơi để gửi cho nó. 72 00:03:39,400 --> 00:03:41,480 Nhưng đây là hai sắp xếp của bộ phận quan trọng 73 00:03:41,480 --> 00:03:44,000 ngay từ đầu của một HTTP request-- 74 00:03:44,000 --> 00:03:46,770 giống như khi bạn bắt đầu một thư bạn nói, bạn thân mến, trống. 75 00:03:46,770 --> 00:03:49,710 Điều này là rất giống nhau trong tinh thần đó. 76 00:03:49,710 --> 00:03:52,370 >> Và nếu cats.com sẽ nói, oh, chắc chắn, ở đây bạn đi. 77 00:03:52,370 --> 00:03:55,590 Họ có thể phản ứng như this-- Tôi cũng đáp ứng. 78 00:03:55,590 --> 00:03:57,960 Tôi cũng nói HTTP 1.1. 79 00:03:57,960 --> 00:04:01,720 Yêu cầu của bạn được chấp thuận, 200 OK. 80 00:04:01,720 --> 00:04:04,709 Những gì bạn đang về để nhận là HTML và sau đó 81 00:04:04,709 --> 00:04:06,250 dot, dot, chấm một số thông tin thêm. 82 00:04:06,250 --> 00:04:10,620 Và ở phía cuối của yêu cầu thực sự là HTML, 83 00:04:10,620 --> 00:04:16,339 ngôn ngữ đánh dấu, các nội dung của trang web của cats.com. 84 00:04:16,339 --> 00:04:21,227 >> Vì vậy, HTTP / 1.1-- Tôi xác nhận của bạn yêu cầu được chấp nhận thông qua HTTP 1.1. 85 00:04:21,227 --> 00:04:22,310 Yêu cầu của bạn đã được chấp thuận. 86 00:04:22,310 --> 00:04:25,810 Tôi có thể cung cấp cho bạn những gì bạn muốn, 200 OK. 87 00:04:25,810 --> 00:04:27,440 Bạn đang về để nhận được HTML. 88 00:04:27,440 --> 00:04:30,450 Và sau đó ở đây là HTML mà bạn yêu cầu. 89 00:04:30,450 --> 00:04:33,930 >> Nhưng đôi khi yêu cầu của chúng ta không luôn đi khá đúng theo kế hoạch. 90 00:04:33,930 --> 00:04:37,100 Tôi có thể xem trang cats.html của bạn? 91 00:04:37,100 --> 00:04:40,366 Vâng, những gì nếu họ nói, chúng tôi không có một trang cats.html, 92 00:04:40,366 --> 00:04:42,740 mà dường như loại không thực tế bởi vì họ đang cats.com. 93 00:04:42,740 --> 00:04:44,400 Bạn nghĩ rằng họ sẽ có cats.html. 94 00:04:44,400 --> 00:04:45,420 Nhưng OK. 95 00:04:45,420 --> 00:04:48,484 Vì vậy, đây là hai yếu tố sự tương tác của con người thông thường 96 00:04:48,484 --> 00:04:49,650 bây giờ chúng tôi đã có với cats.com. 97 00:04:49,650 --> 00:04:51,060 Làm thế nào mà dịch? 98 00:04:51,060 --> 00:04:52,726 >> Đây có thể là một cái gì đó quen thuộc với bạn. 99 00:04:52,726 --> 00:04:55,690 Yêu cầu của chúng tôi trông giống hệt nhau, ngoại trừ thay vì nhận được dấu gạch chéo 100 00:04:55,690 --> 00:04:58,110 chúng tôi bây giờ nhận cats.html. 101 00:04:58,110 --> 00:05:01,810 Vì vậy, bây giờ những gì cơ bản toàn bộ này yêu cầu được nói là hãy cho tôi 102 00:05:01,810 --> 00:05:05,620 www.cats.com/cats.html. 103 00:05:05,620 --> 00:05:08,700 Vì vậy, các máy chủ và trung bình các một phần của dòng đầu 104 00:05:08,700 --> 00:05:14,632 có chỉ ra chính xác những trang tôi yêu cầu. 105 00:05:14,632 --> 00:05:17,590 Nhưng cats.com trong trường hợp này không phải là đi để có thể phản ứng tích cực. 106 00:05:17,590 --> 00:05:19,089 Họ không biết chúng ta đang nói về. 107 00:05:19,089 --> 00:05:25,170 Và do đó, đây là một cái gì đó bạn có thể có thấy before-- HTTP 1.1 404 Not Found. 108 00:05:25,170 --> 00:05:27,180 Tôi không thể tìm thấy những gì bạn đã yêu cầu. 109 00:05:27,180 --> 00:05:30,460 Bằng cách này, tôi sẽ cung cấp cho bạn lại một số HTML, và thường là HTML 110 00:05:30,460 --> 00:05:32,351 là nội dung của một số trang 404. 111 00:05:32,351 --> 00:05:34,100 Và trong trường hợp của cats.com, nó có thể là 112 00:05:34,100 --> 00:05:37,720 một số con mèo dễ thương trong chiếc giỏ với 404 khuôn mặt buồn bên cạnh họ, 113 00:05:37,720 --> 00:05:40,920 bởi vì bạn sẽ được buồn khi bạn không có một trang 114 00:05:40,920 --> 00:05:43,040 mà bạn đang tìm kiếm. 115 00:05:43,040 --> 00:05:48,520 >> Đó là loại vấn đề cơ bản của những gì một giao thức, các yêu cầu giao thức HTTP 116 00:05:48,520 --> 00:05:49,180 giống như. 117 00:05:49,180 --> 00:05:52,640 Họ đang thực sự tương tự như cách chúng tôi sẽ làm cho một sự tương tác tương tự 118 00:05:52,640 --> 00:05:55,460 trong công ước chỉ là con người hỏi xem có gì 119 00:05:55,460 --> 00:05:58,250 và lấy lại được hoặc viết một thư và chờ đợi một phản ứng 120 00:05:58,250 --> 00:06:00,380 thư trong một định dạng cụ thể. 121 00:06:00,380 --> 00:06:03,910 Đó là khá nhiều những gì HTTP chỉ là canonicalizing 122 00:06:03,910 --> 00:06:10,190 cho tất cả các thiết bị mà muốn truy cập các trang web, chuyển siêu văn bản. 123 00:06:10,190 --> 00:06:15,110 >> Vì vậy, một dòng của biểu mẫu, này phương pháp phiên bản yêu cầu mục tiêu HTTP, 124 00:06:15,110 --> 00:06:17,100 được gọi là một dòng yêu cầu HTTP. 125 00:06:17,100 --> 00:06:23,740 Nó thường là điều đầu tiên mà là truyền như là một phần của một yêu cầu HTTP 126 00:06:23,740 --> 00:06:26,180 hoặc nếu bạn đang yêu cầu HTTP. 127 00:06:26,180 --> 00:06:29,970 Nó loại thích, như tôi đã nói, nói dear, trống ở đầu thư của bạn. 128 00:06:29,970 --> 00:06:32,880 Họ biết rằng bạn đang viết cho họ một lá thư. 129 00:06:32,880 --> 00:06:34,796 Vì vậy, điều này là rất tương tự để nói, tôi biết 130 00:06:34,796 --> 00:06:37,670 rằng họ đang thực hiện một yêu cầu HTTP và đây là định dạng đặc biệt 131 00:06:37,670 --> 00:06:39,090 họ đang yêu cầu. 132 00:06:39,090 --> 00:06:43,810 >> Phiên bản HTTP có lẽ luôn luôn có được HTTP / 1/1. 133 00:06:43,810 --> 00:06:46,670 1.0 còn tồn tại nhưng không phải là thực sự được sử dụng nữa. 134 00:06:46,670 --> 00:06:49,200 Đối với mục đích của CS50, GET là có thể luôn luôn 135 00:06:49,200 --> 00:06:51,540 những gì bạn sẽ được sử dụng khi bạn đang thực sự 136 00:06:51,540 --> 00:06:54,250 làm cho các yêu cầu HTTP trực tiếp. 137 00:06:54,250 --> 00:06:57,720 Nhưng POST là một lựa chọn khác mà chúng tôi sẽ không nói về ngay bây giờ. 138 00:06:57,720 --> 00:07:02,980 Và sau đó yêu cầu mục tiêu là những gì trang trên máy chủ của máy chủ 139 00:07:02,980 --> 00:07:05,812 bạn muốn để có được. 140 00:07:05,812 --> 00:07:08,020 Như tôi đã nói, rằng hostname là một dòng riêng biệt, thường 141 00:07:08,020 --> 00:07:10,350 dòng thứ hai của các yêu cầu chung. 142 00:07:10,350 --> 00:07:13,660 Và như vậy lấy nhau, máy chủ tên và các mục tiêu yêu cầu 143 00:07:13,660 --> 00:07:16,070 chỉ định cụ thể tài nguyên đang được tìm kiếm. 144 00:07:16,070 --> 00:07:20,986 Trong ví dụ của chúng tôi 404 một giây trước đó, tôi đã được hỏi một lần nữa cho www.cats.com, 145 00:07:20,986 --> 00:07:22,940 cats.com là chủ nhà. 146 00:07:22,940 --> 00:07:26,300 Và trong dòng yêu cầu của tôi, Tôi nói /cats.html. 147 00:07:26,300 --> 00:07:27,790 Đó là mục tiêu yêu cầu của tôi. 148 00:07:27,790 --> 00:07:31,200 Vì vậy, nhìn chung, tôi đã được yêu cầu cho các nội dung hoặc các tài nguyên nằm 149 00:07:31,200 --> 00:07:36,410 tại www.cats.com/cats.html. 150 00:07:36,410 --> 00:07:38,870 >> Và sau đó dựa vào việc các nguồn tài nguyên tồn tại 151 00:07:38,870 --> 00:07:42,160 và liệu các máy chủ có thể cung cấp các nguồn tài nguyên theo quy định của khách hàng 152 00:07:42,160 --> 00:07:46,760 yêu cầu, bạn có thể nhận được Mã trạng thái khác nhau lại. 153 00:07:46,760 --> 00:07:50,280 Một số các mã trạng thái mà bạn đã nhìn thấy vì chúng là một phần của đáp ứng. 154 00:07:50,280 --> 00:07:53,580 Một số trong số họ, 200 OK, là có lẽ là khá im lặng. 155 00:07:53,580 --> 00:07:55,650 Bạn đã có thể chưa bao giờ thấy một trang đáp ứng 200 OK. 156 00:07:55,650 --> 00:07:56,890 Bạn chỉ cần có được trang. 157 00:07:56,890 --> 00:08:01,260 Nó không giống như một lỗi 404, mà thường là khá rõ ràng. 158 00:08:01,260 --> 00:08:03,850 Bạn thường thấy rằng nó nói 404. 159 00:08:03,850 --> 00:08:06,880 >> Vì vậy, chúng ta hãy nói về những gì một số của những mã số trạng thái có thể được. 160 00:08:06,880 --> 00:08:09,660 Một lần nữa, khi các máy chủ trả lời cho chúng tôi, chúng 161 00:08:09,660 --> 00:08:12,120 sẽ đáp ứng HTTP status phiên bản. 162 00:08:12,120 --> 00:08:14,020 Thường HTTP / 1.1. 163 00:08:14,020 --> 00:08:17,410 Các mã trạng thái sẽ là gì? 164 00:08:17,410 --> 00:08:18,890 Vâng, chúng ta có thể có được một thành công. 165 00:08:18,890 --> 00:08:23,617 Vì vậy, trong các thể loại thành công, chúng tôi có thể nhận được mã 200 với các văn bản OK. 166 00:08:23,617 --> 00:08:24,450 Điều đó có nghĩa là gì? 167 00:08:24,450 --> 00:08:25,491 Vâng, tất cả mọi thứ là tốt. 168 00:08:25,491 --> 00:08:26,721 Bạn đã thực hiện một yêu cầu hợp lệ. 169 00:08:26,721 --> 00:08:27,720 Dưới đây là một phản ứng hợp lệ. 170 00:08:27,720 --> 00:08:30,060 Tôi đã có thể cung cấp chính xác những gì bạn muốn. 171 00:08:30,060 --> 00:08:33,080 >> Đôi khi bạn có thể có được những thứ khác rằng bạn sẽ không nhận thấy ngay lập tức 172 00:08:33,080 --> 00:08:35,140 nhưng có phần thất bại. 173 00:08:35,140 --> 00:08:36,422 Họ được gọi là chuyển hướng. 174 00:08:36,422 --> 00:08:37,630 Có hai cái phổ biến ở đây. 175 00:08:37,630 --> 00:08:41,520 301 Permanently-- Đã chuyển điều này về cơ bản có nghĩa là 176 00:08:41,520 --> 00:08:43,559 là trang hiện tại là một vị trí mới. 177 00:08:43,559 --> 00:08:44,920 Nó sẽ sống ở đó mãi mãi. 178 00:08:44,920 --> 00:08:47,150 Và hầu hết các trình duyệt sẽ tự động chuyển hướng bạn. 179 00:08:47,150 --> 00:08:49,860 Vì vậy, bạn sẽ không bao giờ thực sự nhìn thấy 301, hoặc, trừ khi bạn đang 180 00:08:49,860 --> 00:08:52,210 sử dụng một thực sự out-of-date trình duyệt, có thể, 181 00:08:52,210 --> 00:08:57,660 vì phản ứng 301 là một phần của các dấu chấm, dấu chấm, dấu chấm của các phản ứng 301. 182 00:08:57,660 --> 00:08:59,577 Nó cũng cho bạn biết nơi trang mới. 183 00:08:59,577 --> 00:09:01,660 Và vì vậy hầu hết các trình duyệt sẽ chỉ cần chuyển hướng bạn có, 184 00:09:01,660 --> 00:09:03,570 giả sử rằng bạn muốn đi đến đó. 185 00:09:03,570 --> 00:09:05,440 >> Đôi khi bạn cũng sẽ nhận được 302 Found. 186 00:09:05,440 --> 00:09:07,850 Và một trong những bạn thực sự vẫn có thể nhìn thấy đôi. 187 00:09:07,850 --> 00:09:09,720 Đôi khi các trang di chuyển tạm thời. 188 00:09:09,720 --> 00:09:13,570 Vì vậy, nó sẽ không được xây dựng thành yêu cầu cho trình duyệt 189 00:09:13,570 --> 00:09:16,740 để thay đổi vĩnh viễn bất cứ lúc nào nó thấy các yêu cầu mà bạn 190 00:09:16,740 --> 00:09:18,255 làm thay đổi nó cho một cái gì đó khác. 191 00:09:18,255 --> 00:09:21,210 Vì vậy, bạn có thể thấy 302 Tìm thấy, mà cơ bản 192 00:09:21,210 --> 00:09:22,710 nói trang này sống ở một nơi khác. 193 00:09:22,710 --> 00:09:24,418 Nhưng nó không phải đi để sống ở đó mãi mãi. 194 00:09:24,418 --> 00:09:29,052 Nó cuối cùng sẽ có thể đi trở lại nơi mà bạn nghĩ rằng đó là. 195 00:09:29,052 --> 00:09:31,780 >> Sau đó, bạn sẽ có được những điều như lỗi khách hàng. 196 00:09:31,780 --> 00:09:34,012 Vì vậy, đây là những cái bạn đã có thể nhìn thấy, bây giờ. 197 00:09:34,012 --> 00:09:35,970 Bạn có lẽ đã không nhìn thấy các 200s hoặc 300, 198 00:09:35,970 --> 00:09:37,370 nhưng có lẽ bạn đang quen thuộc với 400s. 199 00:09:37,370 --> 00:09:40,130 Và đó là những gì chúng ta sẽ nói về trong một giây, 500s là tốt. 200 00:09:40,130 --> 00:09:42,580 >> Bạn có thể thấy 401 Unauthorized. 201 00:09:42,580 --> 00:09:45,100 Thông thường điều này có nghĩa là bạn đang cố gắng để truy cập vào một trang, 202 00:09:45,100 --> 00:09:46,230 nhưng bạn đã không đăng nhập. 203 00:09:46,230 --> 00:09:50,500 Vì vậy, bạn cố gắng và đi đến một số hồ sơ hoặc một cái gì đó trên Facebook 204 00:09:50,500 --> 00:09:53,106 hoặc bạn thử và truy cập some-- bạn đang làm việc. 205 00:09:53,106 --> 00:09:56,619 Bạn đang cố gắng để truy cập vào một cái gì đó trên internet của công việc của bạn, 206 00:09:56,619 --> 00:09:57,660 nhưng bạn chưa đăng nhập. 207 00:09:57,660 --> 00:09:58,740 Bạn không thể xem trang. 208 00:09:58,740 --> 00:10:01,770 Bạn có thể nhận được 401 trái phép, có nghĩa là chúng ta có thể 209 00:10:01,770 --> 00:10:06,590 sẽ có thể đáp ứng yêu cầu này, nhưng trước tiên bạn cần phải đăng nhập để làm như vậy. 210 00:10:06,590 --> 00:10:09,590 >> Ngược lại, bạn có thể nhận được 403 Cấm, đó là nó không thực sự 211 00:10:09,590 --> 00:10:11,490 quan trọng nếu bạn đang đăng nhập hay không. 212 00:10:11,490 --> 00:10:13,020 Yêu cầu này không được phép. 213 00:10:13,020 --> 00:10:15,320 Các nguồn tài nguyên tồn tại trên máy chủ. 214 00:10:15,320 --> 00:10:17,817 Nhưng bạn không được phép truy cập vào nó. 215 00:10:17,817 --> 00:10:20,900 Đây là các file thường nội bộ sống trên các máy chủ vì nhiều lý do 216 00:10:20,900 --> 00:10:23,860 nhưng không dự định được truy cập từ thế giới bên ngoài, 217 00:10:23,860 --> 00:10:25,030 và do đó, họ bị cấm. 218 00:10:25,030 --> 00:10:27,120 Họ sống ở đó. 219 00:10:27,120 --> 00:10:28,440 Tôi không nói rằng tôi không thể tìm thấy nó. 220 00:10:28,440 --> 00:10:30,030 Nhưng tôi nói rằng tôi không thể đưa nó cho bạn. 221 00:10:30,030 --> 00:10:32,071 Và nó không quan trọng nếu bạn đang đăng nhập hay không. 222 00:10:32,071 --> 00:10:35,479 Và dĩ nhiên, các rất phổ biến 404 Not Found. 223 00:10:35,479 --> 00:10:37,020 Các tập tin không tồn tại trên máy chủ. 224 00:10:37,020 --> 00:10:40,200 Tôi muốn để đáp ứng yêu cầu của bạn, nhưng tôi không thể. 225 00:10:40,200 --> 00:10:43,390 >> Bạn cũng có đôi khi nhìn thấy máy chủ lỗi, phổ biến nhất thường 226 00:10:43,390 --> 00:10:46,990 là 500 Internal Server Error, mà không thực sự nói với bạn bất cứ điều gì 227 00:10:46,990 --> 00:10:50,200 tại tất cả về những gì đã đi sai. 228 00:10:50,200 --> 00:10:53,290 Nhưng nó không phải thực sự làm cho bạn một sai lầm trong yêu cầu của bạn. 229 00:10:53,290 --> 00:10:58,200 Nó thực sự là máy chủ thất bại để cung cấp theo yêu cầu bằng cách nào đó. 230 00:10:58,200 --> 00:11:00,040 Vì vậy, 500 là phản ứng chung. 231 00:11:00,040 --> 00:11:03,190 >> Bạn cũng sẽ thấy một cái gì đó như Service Unavailable, 232 00:11:03,190 --> 00:11:05,720 mà tôi tin là mã 503. 233 00:11:05,720 --> 00:11:07,882 Và Gateway Timeout-- nếu bao giờ bạn đã có một trang chỉ 234 00:11:07,882 --> 00:11:09,590 ngồi đó bốc tải và bốc 235 00:11:09,590 --> 00:11:12,715 và bạn không bao giờ biết nếu nó sẽ tải và sau đó cuối cùng nó chỉ says-- 236 00:11:12,715 --> 00:11:13,650 chỉ cho phép lên. 237 00:11:13,650 --> 00:11:15,460 Đó là một 504 Cổng Timeout. 238 00:11:15,460 --> 00:11:17,600 Các máy chủ muốn thực hiện yêu cầu của bạn, 239 00:11:17,600 --> 00:11:19,930 nhưng một cái gì đó đã đi sai trên side-- máy chủ 240 00:11:19,930 --> 00:11:24,452 không phải trên side-- của bạn gây ra mà là một vấn đề. 241 00:11:24,452 --> 00:11:27,410 Bây giờ, chúng ta có thể kết thúc câu chuyện ở đây, nhưng những gì tôi thực sự sẽ làm gì bây giờ 242 00:11:27,410 --> 00:11:29,368 là tôi sẽ mở ra trình duyệt của tôi và cho bạn 243 00:11:29,368 --> 00:11:32,250 làm thế nào bạn có thể có thể nhìn thấy một số các mã trạng thái 244 00:11:32,250 --> 00:11:34,580 thậm chí nếu bạn không thường thấy chúng. 245 00:11:34,580 --> 00:11:39,090 Và chúng ta sẽ làm điều đó bằng cách một cái nhìn tại một số công cụ phát triển. 246 00:11:39,090 --> 00:11:42,050 >> Tất cả các quyền Vì vậy, ở đây tôi bây giờ trong cửa sổ trình duyệt của tôi. 247 00:11:42,050 --> 00:11:45,840 Và tôi muốn tìm hiểu một chút thêm về các yêu cầu HTTP. 248 00:11:45,840 --> 00:11:49,060 Làm thế nào để tôi know-- chắc chắn chúng tôi biết nếu một Trang goes-- khi có điều gì sai, 249 00:11:49,060 --> 00:11:49,630 chúng tôi nhận được một 404. 250 00:11:49,630 --> 00:11:50,465 Tất cả chúng ta đã thấy điều đó. 251 00:11:50,465 --> 00:11:51,840 Chúng tôi không cần phải minh họa đó. 252 00:11:51,840 --> 00:11:53,048 Nhưng một số người khác là gì? 253 00:11:53,048 --> 00:11:56,850 Và làm thế nào chúng ta sẽ thấy những yêu cầu này trong hành động? 254 00:11:56,850 --> 00:11:59,990 >> Vì vậy, điều đầu tiên tôi sẽ làm là mở Công cụ phát triển. 255 00:11:59,990 --> 00:12:02,580 Vì vậy, công cụ phát triển được xây dựng vào hầu hết các trình duyệt hiện đại 256 00:12:02,580 --> 00:12:06,020 và cho phép chúng ta nhìn thấy mọi thứ rằng chúng ta không làm khác 257 00:12:06,020 --> 00:12:10,580 see-- một số thông tin thêm loại được truyền đi dưới web của chúng tôi 258 00:12:10,580 --> 00:12:11,500 yêu cầu. 259 00:12:11,500 --> 00:12:12,790 Tôi đang sử dụng Google Chrome tại đây. 260 00:12:12,790 --> 00:12:16,900 Và để mở Công cụ phát triển trong Chrome, bạn chỉ cần nhấn F-12, 261 00:12:16,900 --> 00:12:18,729 và nó sẽ mở nó lên trên mặt. 262 00:12:18,729 --> 00:12:21,770 Một khi tôi nhập các yêu cầu, tôi sẽ phóng to vì vậy chúng tôi có thể xem những gì đang xảy ra ở đây. 263 00:12:21,770 --> 00:12:28,530 Nhưng những gì tôi sẽ làm gì trong trình duyệt của tôi thanh is-- và tôi sẽ phóng to hơn here-- 264 00:12:28,530 --> 00:12:32,427 Tôi sẽ tạo một yêu cầu để www.google.com. 265 00:12:32,427 --> 00:12:34,260 Chúng ta tất cả đều có thể thực hiện yêu cầu này trước đây. 266 00:12:34,260 --> 00:12:35,400 Tôi sẽ nhấn Enter. 267 00:12:35,400 --> 00:12:41,920 268 00:12:41,920 --> 00:12:46,400 >> Bây giờ, ở đây trong phát triển của tôi Công cụ, tôi đã chọn tab Network. 269 00:12:46,400 --> 00:12:48,010 Và bạn nhận thấy rất nhiều thứ ở đây. 270 00:12:48,010 --> 00:12:51,732 Nhìn vào these-- 200 OK, OK 200, một số của các mã trạng thái sắp tới. 271 00:12:51,732 --> 00:12:53,356 Tôi không biết lý do tại sao tôi nhận được 302 Tìm thấy. 272 00:12:53,356 --> 00:12:54,860 Tôi đã không nhận ra rằng tôi muốn xem một. 273 00:12:54,860 --> 00:12:58,192 Nhưng về cơ bản nhận thấy rằng khá nhiều, về request-- Google của tôi 274 00:12:58,192 --> 00:13:00,150 Tôi đã thực hiện rất đơn giản yêu cầu cho trang của Google. 275 00:13:00,150 --> 00:13:02,890 Và trong quá trình cung cấp các yêu cầu của tôi, 276 00:13:02,890 --> 00:13:05,670 Google dường như đã thực hiện rất nhiều các yêu cầu khác về thay cho tôi. 277 00:13:05,670 --> 00:13:11,990 >> Nhưng tôi đã thực hiện một yêu cầu get cho Google trang và tôi nhận được rất nhiều 200 OKS. 278 00:13:11,990 --> 00:13:14,830 Tôi không nhìn thấy 200 OK trên màn hình của tôi, nhưng tôi nhận được 279 00:13:14,830 --> 00:13:17,170 rất nhiều yêu cầu đã được thực hiện. 280 00:13:17,170 --> 00:13:19,550 Một chi tiết mà tôi khá chắc chắn là sẽ làm việc 281 00:13:19,550 --> 00:13:21,920 is-- cho những người bạn của những người thực sự là trường học cũ, 282 00:13:21,920 --> 00:13:26,012 bạn có thể biết rằng Facebook là không phải luôn ở Facebook.com. 283 00:13:26,012 --> 00:13:29,780 Trong ngày đầu của nó là tại wwww.thefacebook.com. 284 00:13:29,780 --> 00:13:33,560 Họ dường như không thể có được quyền truy cập để Facebook.com cho một thời gian. 285 00:13:33,560 --> 00:13:35,870 >> Và vì vậy những gì tôi mong đợi ở đây là để có được thông tin. 286 00:13:35,870 --> 00:13:37,315 Và chúng ta sẽ thấy nếu điều này chảo ra. 287 00:13:37,315 --> 00:13:39,190 Những gì tôi đang mong đợi ở đây là để có được thông tin 288 00:13:39,190 --> 00:13:43,980 rằng Facebook đã chuyển vĩnh viễn từ thefacebook.com để Facebook.com. 289 00:13:43,980 --> 00:13:46,830 Vì vậy, tôi hy vọng một nơi nào đó gần đầu yêu cầu của tôi 290 00:13:46,830 --> 00:13:50,730 hơn trong Công cụ phát triển của tôi để có được một thông báo 301 291 00:13:50,730 --> 00:13:52,580 rằng Facebook đã chuyển vĩnh viễn. 292 00:13:52,580 --> 00:13:59,070 Một lần nữa, tôi sẽ không nhìn thấy 301 trên màn hình trình duyệt của tôi. 293 00:13:59,070 --> 00:14:01,380 Và bởi vì nó là một 301, đó là một động thái thường trực. 294 00:14:01,380 --> 00:14:03,500 Trình duyệt của tôi, đang được rằng đó là một trình duyệt hiện đại, 295 00:14:03,500 --> 00:14:06,110 có lẽ sẽ chuyển hướng tôi để Facebook.com anyway. 296 00:14:06,110 --> 00:14:07,260 Nhưng chúng ta hãy xem những gì sẽ xảy ra. 297 00:14:07,260 --> 00:14:09,340 >> Và bây giờ tôi sẽ đến đi đến thefacebook.com. 298 00:14:09,340 --> 00:14:11,370 Và vâng, có nó là ngay ở đầu trang. 299 00:14:11,370 --> 00:14:13,390 Nó đã đi xa, nhưng nó đã có. 300 00:14:13,390 --> 00:14:14,820 Hãy để tôi di chuyển lên đây. 301 00:14:14,820 --> 00:14:18,004 302 00:14:18,004 --> 00:14:18,920 Ngay đây ở đầu trang. 303 00:14:18,920 --> 00:14:23,080 Tôi đã thực hiện một yêu cầu để thefacebook.com, và tôi nhận được một phản ứng 304 00:14:23,080 --> 00:14:25,410 mà trang này đã di chuyển vĩnh viễn. 305 00:14:25,410 --> 00:14:27,770 Và sau đó 307 ở đây là một chuyển hướng nội. 306 00:14:27,770 --> 00:14:30,680 Và vì vậy đây là những gì đã thực sự chuyển tôi đến nhiều hơn 307 00:14:30,680 --> 00:14:33,330 www.facebook.com quen thuộc. 308 00:14:33,330 --> 00:14:38,480 >> Vì vậy, các mã phản ứng làm vẫn còn xảy ra, ngay cả khi chúng ta không nhìn thấy chúng. 309 00:14:38,480 --> 00:14:40,710 Tôi sẽ không để minh họa 401, 403, 404, 310 00:14:40,710 --> 00:14:43,090 bởi vì bạn đã có thể nhìn thấy những thời điểm khác nhau. 311 00:14:43,090 --> 00:14:45,740 Và 500, tôi sẽ chỉ được loại of-- chúng tôi muốn có được may mắn 312 00:14:45,740 --> 00:14:50,380 nếu có một 500 bởi vì chúng ta không biết gì máy chủ hiện xuống bất cứ nơi nào. 313 00:14:50,380 --> 00:14:53,060 Nhưng các mã làm tồn tại, và có một cách 314 00:14:53,060 --> 00:14:58,610 để truy cập chúng ngay cả khi chúng ta không thấy họ tận mắt trên hệ thống của chúng tôi. 315 00:14:58,610 --> 00:14:59,530 Tôi Doug Lloyd. 316 00:14:59,530 --> 00:15:01,570 Đây là CS50. 317 00:15:01,570 --> 00:15:03,557