Hãy để tôi bắt đầu bằng cách
giới thiệu 10 phút về Essentials of Networking.
Với thực tế là chúng tôi có thời gian hạn chế,
tôi sẽ tập trung vào việc cung cấp
cho bạn những yếu tố cần thiết mà bạn cần để hiểu từng chủ đề.
Bây giờ, những gì chúng tôi đề cập trong mô-đun cụ thể này sẽ đòi hỏi
ít nhất một sự hiểu biết thô sơ về cách mạng máy tính
hoạt động trước khi chúng tôi hiểu tại sao chúng tôi cần phải sử dụng HTTP,
tại sao chúng tôi giao tiếp với một máy chủ,
lý do cho sự chậm trễ khi bạn đang nói chuyện với một máy chủ và vân vân.
Và cũng có thể, các giao thức khác nhau mà bạn
cần phải nhận thức trước khi bạn thậm chí có thể giao tiếp với một máy chủ.
Vì vậy, hãy ghi nhớ tất cả điều này,
một giới thiệu nhanh 10 phút về Essentials of Networking.
Chúng tôi bắt đầu nhận ra rằng các ứng dụng web không còn độc lập nữa.
Họ luôn có một báo giá unquote Cloud backend hỗ trợ ứng dụng web của bạn.
Bây giờ những ngày này, mọi thứ đều có trên Đám mây.
Khá sớm bạn cũng sẽ có mặt trên đám mây,
ít nhất là trên đám mây chín với một lớp lót bạc.
Nhưng, cho rằng chúng ta cần
một hỗ trợ phía máy chủ cho ứng dụng góc cạnh của chúng tôi để làm việc một cách chính xác,
có bạn sẽ lưu trữ máy chủ.
Và những ngày này, việc lưu trữ máy chủ rất
dễ dàng thực hiện bằng cách sử dụng một trong những dịch vụ cơ sở hạ tầng dựa trên đám mây,
những thứ như Amazon Web Services hoặc Heroku hoặc Digital
Ocean hoặc nhiều thứ khác cung cấp hỗ trợ máy chủ dựa trên đám mây.
Vì vậy, chính xác những gì có sẵn ở phía máy chủ?
Bạn thường có một frontend máy chủ đang nói chuyện với ứng dụng góc cạnh của bạn,
vì vậy đó là logic máy chủ và đằng sau hậu trường logic máy chủ giao tiếp với
một lưu trữ liên tục như một cơ sở dữ liệu nơi dữ liệu của bạn được lưu trữ và truy xuất từ.
Khi bạn bước vào thế giới mạng,
bạn sẽ sớm bị bắn phá với 304 từ viết tắt nhỏ,
những thứ mà bạn nghĩ rằng bạn biết chúng là gì từ tiếng Anh bình thường hoặc chúng có
ý nghĩa hoặc
mục đích hoàn toàn khác khi bạn gặp chúng trong thế giới mạng đó.
Vì vậy, chúng ta hãy xem xét một vài trong số họ.
Vì vậy, trong thế giới mạng bạn sẽ nghe thấy mọi người nói chuyện qua giao thức HTTP.
Giao thức được sử dụng để giao tiếp giữa máy khách và máy chủ.
Đây là một giao thức lớp ứng dụng mà chúng ta sẽ
nói ngắn gọn về một chút nữa trong phần còn lại của bài giảng này.
Giao thức HTTP để nó hoạt động cần một URL để được cung cấp cho nó,
Uniform Resource Locator.
Vì vậy, đây là một chuỗi các ký tự được phân tách bởi dấu gạch chéo,
với một dấu hai chấm HTTP hoặc một dấu hai chấm HTTPS gắn ở phía trước của nó.
Và tôi chắc chắn nếu bạn đã sử dụng World Wide Web,
bạn khá quen thuộc với những gì các URL trông như thế nào.
Ngoài ra, bạn sẽ nghe mọi người nói về JSON,
không phải bạn của bạn Jason mà là JavaScript Object Notation.
Vì vậy, JavaScript Object Notation là một cách để mã hóa dữ liệu
đang được vận chuyển từ phía máy chủ sang phía máy khách hoặc ngược lại.
Và bạn cũng sẽ nghe mọi người nói về XML nhưng một cách khác để
mã hóa dữ liệu trong khi nó đang vận chuyển giữa máy khách và máy chủ phía.
Bây giờ, bạn cũng sẽ nghe mọi người nói về
các giao thức cấp cao hơn gọi là SOAP, không phải là loại bạn tắm với nhưng SOAP như một giao thức
cho phép giao tiếp giữa các thực thể phân phối trong mạng của họ.
Và cũng có thể, bạn sẽ nghe mọi người nói về REST,
không phải là điều mà bạn nhận được quá nhiều trải qua khóa học đặc biệt này,
REST hoặc Chuyển giao trạng thái đại diện.
Tôi sẽ có một bài giảng ngắn hơn
đặc biệt dành cho REST một chút sau đó trong mô-đun này.
Và trong thế giới HTTP,
bạn sẽ nghe mọi người nói về GET, PUT,
POST, và DELETE và bạn sẽ tự hỏi,
tất cả chúng có ý nghĩa gì?
Chúng ta hãy tìm hiểu một chút về những
điều này trong bài giảng này và cũng là bài giảng về REST mà bạn sẽ thấy một chút sau đó.
Một điều quan trọng mà bạn cần phải hiểu khi bạn đang
giao tiếp với một máy chủ là máy chủ khách giao tiếp
gây ra số lượng bất ngờ của sự chậm trễ hoặc không xác định số lượng chậm trễ
trong khi dữ liệu đang được lấy hoặc tải lên máy chủ từ trang web khách hàng.
Vì vậy, điều đó có nghĩa là trong ứng dụng trang web khách hàng của
bạn, bạn cần phải giữ cho người dùng thông báo về thực tế
là một cái gì đó
đang xảy ra đằng sau hậu trường và có thể xử lý sự chậm trễ và có thể không thể có được dữ liệu từ phía máy chủ.
Nó là khá có thể là khi bạn cố gắng để kết nối với một máy chủ,
kết nối của máy chủ có thể thất bại, máy
chủ có thể trả lại dữ liệu không chính xác hoặc có thể gây ra một lỗi trong giao tiếp.
Tất cả những điều này phải được xử lý ở phía khách hàng của bạn một cách thích hợp để ứng dụng của bạn
vẫn sẽ tiếp tục hoạt động ngay cả khi có những vấn đề này.
Nhảy vào giao thức lớp ứng dụng phổ biến nhất
được sử dụng để giao tiếp giữa máy khách và máy chủ,
Giao thức truyền siêu văn bản.
Nhưng đây là một giao thức giao tiếp máy chủ khách.
Bây giờ điều đó có thể hoặc có thể không làm cho nhiều ý nghĩa cho
bạn trừ khi bạn có đủ nền tảng trong mạng,
nhưng đây là một giao thức được sử dụng để mã hóa các thông điệp
mà bạn trao đổi giữa ứng dụng khách hàng của bạn là
một ứng dụng góc cạnh trong trường hợp này và một phía máy chủ.
Vì vậy, giao thức HTTP này cho phép bạn
truy xuất các tài liệu dựa trên siêu văn bản từ phía máy chủ,
ngày càng nhiều thông tin được tải về từ phía máy chủ được
mã hóa theo một trong các định dạng mã hóa chuẩn như JSON hoặc XML.
Và để có thể nói chuyện với một máy chủ,
bạn có sự hỗ trợ từ các hành động HTTP khác nhau hoặc những gì chúng tôi gọi là động từ HTTP, HE
AD, GET, POST, PU
T, DELETE, TRACE, OPTIONS, và CONNECT.
Chúng ta sẽ thấy cụ thể các động từ GET, PUT, POST,
và DELETE chi tiết hơn khi chúng ta kiểm tra giao thức REST API một chút sau đó.
Giao thức HTTP hoạt động như thế nào?
Trong giao thức HTTP,
bạn đang gửi yêu cầu GET từ ứng dụng khách hàng của bạn đến máy chủ.
Và điều này được mã hóa dưới dạng một tin nhắn yêu cầu HTTP.
Thông báo yêu cầu thường mang một URL
trong thông báo yêu cầu chỉ ra những gì bạn muốn phía máy chủ gửi cho bạn.
Và đây thường là một tin nhắn GET nếu bạn
muốn dữ liệu được tải xuống từ phía máy chủ.
Bạn cũng sẽ chỉ định máy chủ cụ thể mà bạn đang giao tiếp với.
Khi máy chủ nhận được yêu cầu của bạn,
máy chủ sẽ truy xuất dữ liệu từ lưu trữ dữ liệu của nó,
thường là một cơ sở dữ liệu ở phía máy chủ,
và sau đó đóng gói dữ liệu này trong
một định dạng thích hợp và gửi dữ liệu trở lại cho bạn ở phía máy khách của bạn.
Nếu bạn đang có được
mã HTML, CSS và JavaScript chuẩn từ phía máy chủ,
thì trình duyệt của bạn có thể hiển thị điều này.
Nhưng với các ứng dụng như Angular,
bạn chủ yếu kết nối với máy chủ và sau đó
truy xuất dữ liệu dưới dạng JSON hoặc XML hầu hết thời gian.
Ngoại trừ việc tải xuống ban đầu của tất cả các tài nguyên được yêu cầu
cho ứng dụng Angular của bạn được thực hiện trong trình duyệt của bạn.
Vì vậy, như chúng ta đã thấy trước đó,
ứng dụng HTTP yêu cầu tin nhắn được gửi giữa máy khách và máy chủ.
Thông báo yêu cầu thường được gửi từ máy khách đến máy chủ và
thông báo yêu cầu bao gồm một dòng yêu cầu cộng với một loạt các tiêu đề,
nơi bạn cung cấp thông tin bổ sung để đủ điều kiện yêu cầu.
Chúng ta sẽ thấy việc sử dụng các tiêu đề và cài đặt khác nhau
trong tiêu đề khi chúng ta đi qua một số bài tập trong mô-đun cụ thể này.
Dòng yêu cầu và tiêu đề được tách ra từ nội dung
của thư yêu cầu bằng một dòng trống.
Nội dung của thư có thể chứa dữ liệu bổ sung
đặc biệt là nếu khách hàng của bạn đang gửi dữ liệu qua phía máy chủ.
Ví dụ khi bạn gửi một biểu mẫu,
thông tin trong biểu mẫu được mã hóa thành
một định dạng JSON và sau đó gửi qua phía máy chủ từ phía máy khách.
Vì vậy, điều đó sẽ được thực hiện bằng cách sử dụng một POST hoặc một tin nhắn PUT.
Nhìn vào các chi tiết nhỏ hơn của thông điệp yêu cầu HTTP, thông
điệp yêu cầu điển hình
trong dòng yêu cầu sẽ chứa phương pháp đó là GET, PUT, POST,
DELETE hoặc một số động từ khác mà bạn đã thấy trước
đó, và sau đó là URL và phiên bản
của Giao thức HTTP mà bạn đang sử dụng để giao tiếp từ máy khách đến phía máy chủ.
Trường tiêu đề thường chứa tên trường tiêu đề,
dấu hai chấm và giá trị cho trường tiêu đề đó.
Và nội dung cơ thể, như tôi đã đề cập,
có thể được mã hóa ở định dạng JSON hoặc XML.
Dưới đây là một ví dụ về
một thông báo yêu cầu HTTP điển hình có thể được gửi đến máy chủ từ máy khách.
Vì vậy, trong thông điệp yêu cầu đặc biệt này,
chúng tôi đang yêu cầu máy chủ giữ lại trang index.html từ
phía máy chủ sang phía máy khách để nó có
thể được hiển thị trong trình duyệt ở phía máy khách.
Một yêu cầu như thế này thường có một nội dung trống trong thư yêu cầu.
Hầu hết các thông tin sẽ được mã hóa
trong dòng yêu cầu cộng với các tiêu đề của thông điệp yêu cầu.
Khi khách hàng gửi yêu cầu đến máy chủ.
Máy chủ sẽ xử lý các yêu cầu và sau đó gửi lại một trả lời cho phía khách hàng.
Thư trả lời được tổ chức thành một lần nữa, ba phần,
một dòng trạng thái nơi một số thông tin về cách
yêu cầu đã được xử lý và những gì đang được gửi lại cho khách hàng được lưu trữ,
các tiêu đề sẽ chứa thêm chi tiết về những gì được
chứa trong thư phản hồi và sau đó theo sau là một dòng trống,
và sau đó là nội dung thực tế của thư.
Một ví dụ về những gì sẽ thường được chứa trong một thông báo phản hồi HTTP,
trong trường hợp này, thông báo phản hồi này sẽ trở lại với một 200,
đó là một mã trạng thái của thông báo.
Nếu bạn thấy một 200 trong dòng yêu cầu dưới dạng mã trạng thái,
điều đó có nghĩa là yêu cầu của bạn đã thành công và máy chủ có thể
trả về dữ liệu mà bạn đã yêu cầu từ phía máy chủ.
Và sau đó tiêu đề sẽ chứa các hướng dẫn bổ sung cho
phía khách hàng bao gồm thông tin về
cách nội dung thực tế của tin nhắn được mã hóa.
Sau đó, nội dung có thể chứa,
nếu bạn đã yêu cầu trang index.html,
nội dung của thư sẽ chứa mã HTML cho
trang index.html như bạn thấy trong ví dụ này ở đây.
Một trong những mẩu thông tin trong dòng trạng thái mà tôi gọi là mã trạng thái.
Nếu máy chủ có thể xử lý yêu cầu của bạn
một cách chính xác, nó sẽ gửi trả lời với mã trạng thái là 200,
nghĩa là mọi thứ đều ổn ở phía máy chủ và
phía máy chủ đang trả lại dữ liệu một cách chính xác.
Nếu máy chủ không thể xử lý yêu cầu vì bất cứ lý do gì,
thì thông tin đó sẽ được mã hóa
trong mã trạng thái trong dòng trạng thái của thư trả lời.
Các mã trạng thái khác nhau thường mà bạn sẽ gặp phải khi bạn
nhận được một câu trả lời từ phía máy chủ bao gồm một 201,
có nghĩa là khi bạn cố gắng tạo ra
một đối tượng ở phía máy chủ nó đã được tạo thành công,
hoặc một 301 có nghĩa là bất cứ điều gì bạn đang yêu cầu đã di chuyển vĩnh viễn
đến một vị trí mới và URL của
vị trí mới của tài nguyên đó sẽ được trả về phía khách hàng của bạn.
400s và 500s thường chỉ ra rằng có một số vấn đề ở phía máy chủ.
404 là một cái gì đó mà bạn thường gặp khi
bạn yêu cầu một cái gì đó không tồn tại ở phía máy chủ.
Tương tự, 500 có nghĩa là máy chủ chỉ bỏ cuộc,
nó không thể xử lý yêu cầu của bạn và sau đó gửi lại một lỗi máy chủ nội bộ.
Đây là hai mã lỗi phổ biến mà bạn sẽ gặp phải.
Những cái còn lại có ý nghĩa cụ thể như được liệt kê trong bảng này ở đây.
Có nhiều hơn các mã trạng thái mà tôi đã cung cấp cho bạn trong bảng này,
nhưng đây là một số mã trạng thái phổ biến nhất mà bạn sẽ
gặp phải trong một tin nhắn trả lời đến từ phía máy chủ.
Một điểm khác mà tôi đã đề cập là một thực tế rằng các máy chủ có thể mã hóa
dữ liệu trong một định dạng cụ thể như XML hoặc Extended Markup Language hoặc JSON,
định dạng JavaScript Object Notation.
Bây giờ thông thường, trong khóa học đặc biệt này,
chúng tôi sẽ được đối phó với dữ liệu được mã hóa chủ yếu trong JSON.
Hầu hết các ứng dụng phía khách hàng
bao gồm các ứng dụng di động những ngày này thường giao tiếp với
máy chủ và định dạng trao đổi dữ liệu là JSON theo mặc định trong hầu hết các trường hợp.
Đó là lý do tôi sẽ dành một vài phút giải thích cho bạn về JSON.
Ký hiệu đối tượng JavaScript hay JSON là một định dạng trao đổi dữ liệu nhẹ.
Lý do định dạng dữ liệu JSON đặc biệt quan
tâm đến chúng tôi trong khóa học này là vì ký hiệu đối tượng JavaScript,
như tên gọi của nó,
rất dễ dàng ánh xạ vào một đối tượng JavaScript mà bạn sử dụng với bất kỳ mã JavaScript nào.
Vì vậy, việc chuyển đổi một đối tượng JavaScript
thành ký hiệu JSON và ngược lại là rất đơn giản.
Ký hiệu JSON là những gì chúng ta gọi là một
tự mô tả và rất dễ hiểu ký hiệu.
Trong định dạng JavaScript Object Notation,
dữ liệu được cấu trúc theo một cách rất sạch sẽ, được chỉ định.
Điều này được cấu trúc như là một tập hợp các tên, cặp giá trị,
và điều này được cấu trúc như một danh sách các giá trị có thứ tự.
Bạn có thể thấy một ví dụ về điều này ở phía bên tay phải ở đây.
Chúng tôi đã thực sự sử dụng dữ liệu JSON này trong ứng dụng góc cạnh của chúng tôi đã sớm hơn.
Vì vậy, bây giờ bạn thấy lý do tại sao dữ liệu được cấu trúc theo cách đó.
Và bạn cũng nhận ra rằng nó là rất dễ dàng để có thể đối phó với
dữ liệu này trong JavaScript của bạn hoặc mã TypeScript của bạn trong ứng dụng Angular của bạn.
Với điều này, tôi hoàn thành một cái nhìn tổng quan nhanh về các yếu tố cần thiết của mạng.