Hôm nay, chúng ta hãy nói về chu kỳ đáp ứng yêu cầu hoặc về
cơ bản những gì xảy ra khi bạn gõ một cái gì đó vào thanh địa chỉ của trình duyệt của bạn.
Một trong những điều tôi nghĩ thực sự hài hước và tôi cũng có tội,
đó là tất cả chúng ta đều làm những việc và chúng ta không biết chúng hoạt động như thế nào.
Vậy, nếu tôi hỏi anh khi nào anh gõ địa chỉ, thì chuyện gì sẽ xảy ra?
Vì vậy, bài giảng này thực sự là một trong những kỹ thuật nhất của toàn bộ lớp học này.
Tôi không muốn cảm thấy như bạn cần phải ghi nhớ điều này hoặc viết nó xuống,
nhưng tôi nghĩ rằng nó sẽ giúp bạn hiểu
nhiều hơn một chút những gì đang xảy ra khi bạn học HTML5.
Vì vậy, một trong những điều bạn có thể muốn hiểu là mối quan hệ khách hàng-máy chủ.
Các máy chủ về cơ bản là các máy chứa tất cả các tài nguyên.
Hy vọng của chúng tôi là chúng luôn được kết nối với mạng lưới.
Khách hàng là những gì chúng tôi đang sử dụng,
nơi mà các máy mà bạn sử dụng cho mục đích cá nhân;
như máy tính xách tay, điện thoại, vv.
Để tôi cho các bạn thấy trong bức ảnh này.
Nó thực sự phổ biến để sử dụng các mạng như một cái gì đó gọi là một mạng LAN hoặc một WAN.
Một mạng LAN là một mạng cục bộ,
và vì vậy những gì tôi có ở đây là ý tưởng rằng chúng ta có thể có
ba máy tính khác nhau và tất cả chúng đều chia sẻ một máy chủ.
Tại sao chúng ta lại muốn làm điều đó?
Vâng, rất nhiều lần,
bạn chỉ có một máy in hoặc một trong những tài nguyên khác nhau.
Bằng cách này, cả ba máy có thể làm việc cùng nhau và chia sẻ một tài nguyên đó.
Vì vậy, mạng LAN là mạng cục bộ.
Đôi khi, bạn muốn có một cái gì đó lớn hơn hoặc một mạng diện rộng.
Vì vậy, trong phim ảnh, khi người tốt đột nhập vào tòa nhà để ăn cắp phần mềm,
điều thường xảy ra là họ có một máy chủ mà
mọi người làm việc trong tòa nhà đều có thể truy cập nhưng không ai bên ngoài tòa nhà,
hoặc thậm chí bạn có thể có nó qua các tòa nhà khác nhau nhưng bạn không
muốn bất cứ ai từ bên ngoài để thực sự có thể nhận được thông tin của bạn.
Vì vậy, mạng lưới địa phương giống như tòa nhà văn phòng của bạn.
Một mạng lưới diện rộng có thể là một trường đại học,
nơi bạn muốn có thể chia sẻ máy chủ trên nhiều tòa nhà.
Mạng diện rộng lớn nhất là, tất nhiên, Internet.
Vì vậy, bây giờ chúng tôi quay lại câu hỏi đó về
những gì xảy ra khi bạn gõ một cái gì đó vào URL?
Những gì bạn đang làm là bạn khách hàng đang yêu cầu
một trang web và máy chủ cần phải trả lời với các tập tin thích hợp.
Vì vậy, khi bạn gõ một cái gì đó vào,
điều này được gọi là URL.
Mỗi URL có ba phần.
Giao thức, cách bạn muốn kết nối, tên miền,
đó là máy chủ,
và sau đó tùy chọn, bạn có thể bao gồm các tài liệu.
Vì vậy, mặc dù bạn đang gõ vào một URL,
một trong những điều cần nhận ra là thông thường,
bạn đang thực sự yêu cầu rất nhiều và rất nhiều tập tin cùng một lúc.
Vì vậy, các giao thức mà hầu hết mọi người đã thấy; giao thức
đầu tiên là HTTP,
giao thức truyền siêu văn bản.
Thứ hai, HTTPS,
là cùng một ý tưởng,
chỉ bây giờ chúng ta đang có một giao thức an toàn hơn.
Vì vậy, nếu bạn đã bao giờ kết nối với ngân hàng hoặc bất kỳ nơi nào bạn đang đặt mật khẩu,
hãy đảm bảo rằng điều đầu tiên bạn thấy trong URL đó là HTTPS.
Nếu không, đừng kết nối.
Thứ ba được gọi là Giao thức truyền tệp.
Nó hơi khác một chút.
Khi bạn nhìn thấy HTTP,
nó mong đợi rằng bạn sẽ cung cấp cho qua lại mã HTML5;
với FTP, nó có thể là bất kỳ loại tập tin.
Vì vậy, chúng ta có giao thức,
bây giờ chúng ta hãy nói về những gì các tên miền đại diện.
Thông thường, các tên miền là một cái gì đó dễ nhận biết, chẳng hạn như umich.edu,
sẽ dành cho Đại học Michigan.
Google.com, wikipedia.org.
Vì vậy, mỗi trang web có một tên miền cấp cao nhất khác nhau.
Làm sao anh có được chúng?
Làm thế nào để một số người có thể trở thành .edu và some.com, some.biz, et cetera?
Vâng, chúng thực sự được xác định bởi ICANN.
Công việc của họ là đi vào và quyết định loại
tổ chức nào đủ điều kiện cho các tên miền khác nhau.
Tôi đã bao gồm một liên kết ở đây nếu bạn muốn,
bạn có thể đi và xem những gì các loại khác nhau là.
Nhưng điều quan trọng cần biết là
tên miền của bạn thực sự được ánh xạ đến một địa chỉ.
Ngày xưa, giống như khi cha tôi trên Internet,
nếu ông muốn kết nối với một nơi nào đó,
ông sẽ thực sự gõ số;
185.261 et cetera, et cetera.
Vâng, đã có một phiên bản mới của địa chỉ IP,
bởi vì mỗi khách hàng đơn lẻ cần địa chỉ riêng của họ.
Nếu bạn nghĩ đến bao nhiêu người có máy tính xách tay và điện thoại thông minh,
chúng tôi cần rất nhiều lựa chọn khác nhau.
Vì vậy, với những địa chỉ IP này,
về cơ bản bạn có các bộ số,
bạn có những bộ khác nhau ngay tại đây,
nơi mỗi X có thể đại diện cho một trong 16 giá trị khác nhau.
Vì vậy, bạn có thể thấy chúng ta có rất nhiều lựa chọn,
trên 300 nghìn tỷ, trên thực tế.
Như tôi đã nói, may mắn cho bạn,
máy chủ tên miền cho phép bạn gõ một cái gì đó thực sự đơn giản như Umich hoặc Google,
và đó là cái mà biến nó thành con số thực sự dài đó.
Phần cuối cùng của URL của bạn là tài liệu.
Vì vậy, đôi khi bạn muốn chỉ định một tài liệu rất cụ thể mà bạn muốn nhận được.
Vì vậy, ví dụ, trang liên hệ,
hoặc trong trường hợp này, một trong
những khác tôi có các tập tin đó là bên trong một thư mục.
Nhưng đôi khi bạn không đặt một tài liệu nào cả.
Trong thực tế, hầu hết thời gian, bạn không biết.
Nếu bạn nhập vào wikipedia.org hoặc Facebook.com,
không có tên tập tin. Nhưng không sao đâu.
Mỗi máy chủ có một tài liệu mặc định mà nó sẽ trở lại.
Thông thường, nó được gọi là index.HTML.
Được rồi. Vì vậy, chúng tôi đã tìm ra nó.
Chúng tôi biết nó có nghĩa là gì khi chúng tôi gõ một cái gì đó vào.
Chúng tôi hiểu yêu cầu.
Điều gì xảy ra mặc dù một khi chúng tôi gõ vào đó,
là chúng tôi thực sự sẽ lấy lại rất nhiều thông tin.
Tiêu đề, cookie, dữ liệu biểu mẫu,
tất cả những thứ mà bạn không thấy.
Vì vậy, điều quan trọng cần biết là máy chủ trả về các tập tin, không phải các trang web.
Đối với rất nhiều người trong chúng ta, chúng ta rất thị giác.
Vì vậy, khi chúng tôi gõ vào một URL,
chúng tôi đang tìm kiếm và chúng tôi giống như,
“Ồ, đây là trang của tôi.”
Nhưng đôi khi trình duyệt có thể trả lại một
cái gì đó cho các loại khác nhau của trình đọc màn hình
, công nghệ hỗ trợ, vì vậy nó không trả lại một trang web,
nó trả lại rất nhiều và rất nhiều tập tin.
Hy vọng rằng, tôi sẽ thừa nhận rằng đôi khi máy chủ không thể hoàn thành yêu cầu.
Nếu nó không thể, nó sẽ gửi lại một mã lỗi.
Tôi nghĩ rất nhiều người trong số các bạn đã quen thuộc với 404, trong
đó nó nói, “Không tìm thấy tập tin.” Điều
đó thường có nghĩa là bạn đã gõ sai một cái gì đó.
Nếu bạn nhận được một lỗi 500,
điều đó thực sự có nghĩa là các máy chủ xuống.
Vì vậy, bạn cũng có thể đi ăn nhẹ,
làm một cái gì đó vui vẻ, quay lại sau và gõ lại nó.
Vì vậy, tôi muốn làm một bản demo trực tiếp với các bạn về những gì xảy ra khi chúng tôi gõ một cái gì đó vào.
Vì vậy, tôi đã viết nó cho anh.
Nó tìm kiếm tên miền,
DNS trả về một địa chỉ IP,
và sau đó một bó toàn bộ các tập tin bắt đầu được trả lại. Chúng ta hãy xem qua.
Những gì tôi đã làm ở đây là tôi đã đến trường thông
tin tại trường Đại học Michigan.
Tôi chỉ đơn giản là gõ vào si.umich.edu.
Tôi đã không gõ vào giao thức bởi vì nó thường chỉ mặc định.
Vì vậy, những gì bạn nhìn thấy ở đây trực quan là một trang.
Sinh viên nhìn ra ngoài, trông rất lấy cảm hứng, vân vân.
Nhưng bây giờ, tôi sẽ làm một mẹo nhỏ ở đây,
nơi tôi nhấp chuột phải vào màn hình,
và tôi sẽ chọn tùy chọn nói, “Kiểm tra”.
Một cửa sổ sẽ bật lên phía bên này.
Tôi sẽ nói, “Anh biết không?
Tôi muốn xem tất cả các thông tin
đang được trả lại khi tôi thực sự yêu cầu trang này.”
Tôi yêu cầu một trang, tôi sẽ nhấn “Refresh”.
Nếu bạn nhìn sang một bên,
đừng lo lắng rằng bạn không thể nhìn thấy chi tiết.
Nhưng bạn sẽ thấy rằng trang duy nhất thực sự được tạo thành từ rất nhiều và rất nhiều tập tin,
và mỗi một trong những tập tin này là một yêu cầu riêng biệt.
Được rồi. Vậy, chúng ta hãy xem lại.
Đây là một đoạn video dài,
mà thực sự tất cả
những gì tôi muốn bạn thoát khỏi nó với là kiến thức rằng mỗi URL đều có ba phần đó;
giao thức, miền, và tài liệu.
Nhận ra rằng những gì bạn đang tạo là lớn hơn chỉ một tập tin tại một thời điểm.
Mỗi chu kỳ đáp ứng yêu cầu thường là rất
nhiều và rất nhiều vòng giao tiếp giữa máy khách và máy chủ.
Vì vậy, chúng ta sẽ bắt đầu từ nhỏ.
Chúng tôi sẽ thực hiện một tập tin tại một thời điểm,
nhưng bạn luôn có thể nhìn về phía trước để xây dựng các ứng dụng web lớn hơn và lớn hơn.