Computer >> Máy Tính >  >> Kết nối mạng >> Internet

HTTP hoạt động như thế nào và tại sao nó lại quan trọng - Giải thích bằng tiếng Anh thuần túy

Hãy tưởng tượng rằng ngôi nhà của bạn là một chiếc máy tính khổng lồ. Thay vì Đường Goodison hoặc Đại lộ 4, địa chỉ nhà của bạn bao gồm các số. Ví dụ:112.231.31.20.

Giống như trong một bộ phim về tương lai, thành phố của bạn bao gồm phần lớn các robot công nghệ cao trên bầu trời đi từ nhà này sang nhà khác, truyền tải thông điệp và phản hồi của chúng.

Bạn có hình ảnh?

Tổng quan về cách thức hoạt động của Internet

Được đơn giản hóa một chút, đây là những gì sẽ xảy ra khi bạn nhập địa chỉ web vào trình duyệt của mình:

  • Nó tìm thấy địa chỉ của "ngôi nhà" mà bạn muốn gửi yêu cầu
  • Nó gửi yêu cầu bằng cách sử dụng người đưa thư rô bốt
  • Nó kiên nhẫn chờ phản hồi từ người đưa thư rô bốt

Bây giờ, tất cả những điều này được trừu tượng hóa khỏi bạn với tư cách là người dùng cuối. Bạn nhập địa chỉ web vào trình duyệt và trang web hiện ra trước mắt bạn - giống như một phép thuật.

Giống như bất kỳ công nghệ đủ tiên tiến nào, người dùng bình thường sẽ không thể sử dụng Internet nếu không có những thông tin tóm tắt này.

Hầu hết thời gian, bạn không cần phải lo lắng về cách hoạt động của một thứ gì đó - bạn chỉ cần biết rằng nó hoạt động.

Nhưng đối với một số đối tượng nhất định, việc tìm hiểu sâu hơn một chút về các đai ốc và bu lông sẽ rất hữu ích, hoặc chỉ gãi ngứa vì tò mò.

Bạn sẽ không trở thành chuyên gia về các chi tiết kỹ thuật của Internet bằng cách đọc bài viết này - điều đó sẽ mất nhiều thời gian và công sức hơn - nhưng bạn sẽ có được cái nhìn tổng quát và hiểu biết nhiều hơn.

Nếu bạn thấy rằng bạn muốn tìm hiểu thêm, tôi có một danh sách phát trên YouTube chuyên sâu hơn.

Hệ thống nhắn tin

Từ phép ẩn dụ ở đầu bài viết này, chúng ta biết rằng internet bao gồm các thông điệp được truyền đi khắp nơi. Phần lớn, những thông báo này được gửi bằng giao thức HTTP.

Giao thức. Đó là một từ đáng sợ. Đó là đôi mắt lướt qua và đóng loại từ trong trình duyệt của bạn. Vì vậy, hãy chia nhỏ nó thành các thuật ngữ dễ hiểu hơn.

Giao thức chỉ là một từ ngữ hoa mỹ để chỉ thỏa thuận.

Hãy làm cho nó rõ ràng hơn với một phép loại suy.

Giả sử bạn và người bạn thân nhất của bạn để lại những tin nhắn bí mật cho nhau. Khi bạn tìm thấy một mảnh giấy trước cửa nhà của bạn có từ "ballfoot", bạn biết rằng bạn của bạn muốn gặp bạn để xem bóng đá vào lúc 20:00 tối nay.

Bạn biết điều này vì bạn đã đồng ý rằng từ “ballfoot” trên một mảnh giấy được giao đến nhà của bạn thể hiện một lời mời đến chơi.

Bây giờ, một vấn đề nảy sinh khi bạn bắt đầu để lại cho những người bạn khác của mình ghi chú "ballfoot" mà không nói cho họ biết ý nghĩa bí mật. Họ sẽ không biết phải làm gì với thông tin.

Họ sẽ tìm thấy ghi chú trên bậc cửa của họ, gãi đầu trong một phút, sau đó tiếp tục chơi Fortnite trong phòng khách của họ. Và bạn và một người bạn khác của bạn sẽ chuyền bóng giữa bạn. Qua lại. Qua lại. Cho đến khi cảm giác buồn chán không thể chịu nổi và cả hai cùng về nhà.

Nhưng nó không nhất thiết phải như vậy. Điều gì sẽ xảy ra nếu bạn nói với bạn bè của mình ý nghĩa của “ballfoot”? Giờ đây, mọi người trong số bạn bè của bạn sẽ biết và chia sẻ thỏa thuận rằng ghi chú với thế giới “ballfoot” có nghĩa là xuất hiện và chơi bóng tại sân địa phương lúc 20:00.

Thành công.

Đây - về bản chất - là những gì mà giao thức HTTP đại diện. Chúng tôi đã đồng ý rằng nếu chúng tôi gửi một tin nhắn theo một cách cụ thể, máy chủ sẽ hiểu nó và đưa ra phản hồi để đáp lại.

Cấu trúc của thông báo

Hãy xem xét kỹ hơn về thỏa thuận HTTP. Nó bao gồm các yêu cầu và phản hồi. Nói một cách đơn giản, bạn yêu cầu một thứ gì đó và sau đó nhận được câu trả lời từ một thứ được gọi là máy chủ.

Trước khi tiếp tục, chúng ta hãy sửa đổi phép ẩn dụ của chúng ta ngay từ đầu để hiểu rõ hơn về các chu kỳ yêu cầu / phản hồi HTTP.

Bạn có nhớ những con robot đi từ nhà này sang nhà khác mang theo thông điệp không? Bây giờ, hãy tưởng tượng rằng tất cả những robot đó đều thuộc về một người nào đó.

Bạn có rô-bốt cá nhân của riêng mình và bạn có thể yêu cầu nó chuyển đến bất kỳ địa chỉ nào (địa chỉ IP) kèm theo tin nhắn. Khi robot của bạn đến với tin nhắn của bạn theo địa chỉ nhất định, nó sẽ nhập và mạnh dạn tuyên bố rằng nó có một tin nhắn cần gửi. Sau đó, nó sẽ nói thông báo.

Để cho phép ẩn dụ, hãy tưởng tượng rằng cánh cửa vào các ngôi nhà (máy chủ) giống như lối vào khu mỏ Moria trong Chúa tể của những chiếc nhẫn. Chỉ khi các từ được nói đúng cách thì cánh cửa sẽ mở ra và cho bạn vào.

Trong trường hợp này, chỉ khi rô bốt của bạn nói thông báo theo cách cụ thể thì chúng mới nhận được thông báo phản hồi để gửi lại cho bạn.

Đây là giao thức HTTP tại nơi làm việc. Có một bộ quy tắc được xác định trước hướng dẫn giao diện của thông báo yêu cầu và phản hồi.

Tại thời điểm này, bạn có thể tự hỏi những thông điệp này đến từ đâu. Bạn chắc chắn không tự viết chúng khi nhập địa chỉ trang web vào trình duyệt web của mình.

Tất cả đều do trình duyệt tự động xử lý cho bạn. Khi bạn viết một địa chỉ, trình duyệt của bạn sẽ xử lý việc soạn tin nhắn yêu cầu HTTP cho bạn và gửi nó đến máy chủ. Thông báo Yêu cầu HTTP trông giống như sau:

GET / HTTP/1.1
Host: google.com
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) 
Version/11.0 Mobile/15A372 Safari/604.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,
image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
...etc

Nó trông đáng sợ, phải không?

Điều tốt là trình duyệt làm điều này cho chúng tôi.

Hãy xem xét kỹ hơn ngay dòng đầu tiên:GET / HTTP/1.1 . Dòng này làm cho rô-bốt của bạn đi đến trang chủ của Google và nói, "Tôi có thể vui lòng nhận bất cứ thứ gì bạn có tại thư mục gốc của trang web của bạn không?" (Điều này có nghĩa là chúng tôi muốn truy xuất những gì có tại www.google.com, không phải www.google.com.vn/home.)

Vì vậy, bây giờ chúng tôi đã gửi thông điệp của mình đến nhà của Google (máy chủ) theo đúng cách. Các cánh cửa sáng lên và mở ra.

Bên trong bạn nhìn thấy một con robot khác. Đằng sau nó là một loạt các hộp khóa được đánh dấu bằng văn bản như GET / HTTP/1.1GET /search HTTP/1.1 . Nếu yêu cầu của bạn khớp với một trong các hộp khóa đó, rô bốt sẽ mở khóa và cung cấp nội dung cho rô bốt của bạn, điều này sẽ nhắc nó nhanh chóng trở lại với bạn khi có phản hồi.

Phản hồi

Phản hồi bạn nhận lại sẽ giống như sau:

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
Content-Length: 88
Content-Type: text/html
Connection: Closed

Bây giờ, bạn sẽ không bao giờ thấy phản hồi này trừ khi bạn thực sự muốn kiểm tra nó trong các công cụ dành cho nhà phát triển của trình duyệt. Nhưng tuy nhiên, bạn nhận được nó.

Điều gì xảy ra tiếp theo phụ thuộc vào loại phản hồi bạn nhận được và những gì bên trong hộp khóa của máy chủ.

Trong nhiều trường hợp, những gì bạn nhận được đổi lại là một tài liệu HTML. HTML đại diện cho cấu trúc của các trang web và xác định những gì trình duyệt sẽ hiển thị.

Nếu bạn truy cập www.google.com, đổi lại bạn sẽ nhận được một tệp HTML xác định cách trang web google.com sẽ được hiển thị trong trình duyệt của bạn.

Nếu bạn có thời gian, video dài 11 phút này sẽ đi sâu hơn vào các yêu cầu và phản hồi HTTP:

Kết luận

Trong bài viết này, chúng tôi đã xem xét cách hoạt động của Internet và cách chúng tôi sử dụng HTTP để giao tiếp trên Internet.

Chúng tôi đã biết rằng giao thức HTTP được sử dụng để giao tiếp giữa các trình duyệt và máy chủ trên internet và bao gồm một tiêu chuẩn được thống nhất chung về cách gửi và nhận các yêu cầu.

Chúng tôi cũng khám phá tầm quan trọng của việc có các tiêu chuẩn giao tiếp như vậy và lợi ích của việc có một tiêu chuẩn được thống nhất chung.

Có nhiều khía cạnh khác để hiểu cách thức hoạt động của Internet và những loại phản hồi bạn có thể nhận được.

Nếu bạn có thời gian, video dài 18 phút dạy bạn cách xây dựng máy chủ web này sẽ xem xét rất nhiều chủ đề được đề cập trong bài viết này và xem qua một số chủ đề mới:

Bây giờ bạn sẽ có một sự hiểu biết chung về cách thức hoạt động của giao tiếp trên internet.

Nếu bạn nghĩ ai đó có thể hưởng lợi từ bài viết này, vui lòng phổ biến. Và nếu bạn muốn biết khi nào tôi đăng thêm nội dung, bạn có thể đăng ký kênh YouTube của tôi hoặc bạn có thể theo dõi tôi @foseberg trên Twitter.