Chắc hẳn trong mỗi chúng ta, mỗi khi sử dụng trình duyệt để truy cập vào các trang web thì đều sẽ thấy địa chỉ web sẽ bắt đầu bằng http:// hoặc  https:// .

Qua bài viết này, Dev Aptech sẽ giới thiệu cho các bạn biết về những thứ cơ bản của HTTP nhé. 


1. HTTP là gì ?

HTTP là viết tắt của cụm từ Hyper Text Transfer Protocol ( Giao thức truyền tải siêu văn bản ) được sử dụng trong www ( world wide web ) với mục đích tạo nên nền tảng để kết nối giữa server và client . HTTP là một giao thức cho phép tìm nạp và trao đổi các tài nguyên khác nhau , ví dụ như HTML docs . Một doc hoàn chỉnh sẽ được tạo nên từ nhiều doc con bao gồm văn bản, layout, media, video, script… 

Nhờ vào đặc tính mở rộng không giới hạn của nó, ngoài các tài liệu siêu văn bản, HTTP còn được dùng để tìm nạp hình ảnh và video. Thậm chí là đăng tải cả nội dung lên server. Chính vì thế, HTTP đóng vai trò quan trọng trong quy trình cập nhật website thông qua khả năng nạp dữ liệu cho các doc theo yêu cầu.

Source: Mozilla

HTTP lần đầu được giới thiệu vào những năm 90. Cho đến ngày nay, nó không ngừng được mở rộng và chiếm một vị trí rất quan trọng trong thế giới Internet. HTTP được coi như là một giao thức ứng dụng của bộ các giao thức nền tảng cho Internet TCP/IP. Nó cũng có thể được gửi thông qua kết nối TCP được mã hóa TLS.

Nhờ vào khả năng mở rộng của nó, HTTP được sử dụng để không chỉ tìm nạp các tài liệu siêu văn bản mà còn cả hình ảnh và video hoặc để đăng tải nội dung lên server, giống như với các kết quả form HTML. HTTP cũng có thể được sử dụng để tìm nạp các phần của các doc nhằm cập nhật các trang web theo yêu cầu.


2.Cấu trúc cơ bản của HTTP

- Cấu trúc hoạt động của HTTP rất đơn giản và dễ hiểu. HTTP là một nền tảng cho phép sự giao tiếp giữa 2 phía là Client và Server. Client ở đây là người dùng, thường truy cập vào HTTP thông qua một công cụ bất kỳ như trình duyệt web. Còn Server sẽ đại diện cho phía website, đằng sau giao diện web gồm có kịch bản phản ứng từ máy chủ và cơ sở dữ liệu. Quá trình giao tiếp của Client và Server sẽ dựa trên các message độc lập. Đầu tiên, phía khách hàng sẽ gửi một message đến cho máy chủ, thường là các yêu cầu lợi ích khiến khách hàng truy cập website này. Sau khi tiếp nhận yêu cầu và xử lý, máy chủ sẽ trả lại một message được gọi là phản hồi. 
- Mỗi một phản hồi đều là độc lập. Phản hồi sau sẽ không biết và cũng không chịu bất kỳ tác động nào từ phản hồi trước.



 Source: Tutorialspoint


3. Đặc điểm của giao thức HTTP

* HTTP có thiết kế đơn giản :

- Đơn giản chính là đáp án nổi bật nhất cho câu hỏi đặc điểm của giao thức HTTP là gì. Thật vậy, mục đích xuất hiện của HTTP là tạo ra một công cụ thật thân thiện, có thể được sử dụng dễ dàng bởi mọi đối tượng. Các HTTP message đều có cấu tạo rất đơn giản để những người mới sử dụng cũng có thể đọc hiểu được.

* HTTP có khả năng mở rộng :

- Được giới thiệu trong HTTP/1.0, các header HTTP làm cho giao thức này dễ dàng mở rộng và thử nghiệm hơn nữa. Chức năng mới thậm chí có thể được giới thiệu bằng 1 thỏa thuận đơn giản giữa 1 client và 1 server về ngữ nghĩa của 1 header mới.

* HTTP là stateless :

- Bởi mọi phản hồi của HTTP là độc lập nên người dùng không thể tạo sự liên kết thông tin giữa các phản hồi được. Điều này có thể sẽ trở thành một nhược điểm đối với những trường hợp người dùng cần có các tương tác mạch lạc và bổ trợ cho nhau.

- Để khắc phục vấn đề này, HTTP cho phép mở rộng tự do các header. Trong đó, người dùng có thể tự tạo cho mình session trên mỗi request nhằm mục đích chia sẻ các ngữ cảnh hoặc trạng thái giữa các request với nhau. Sở dĩ trường hợp này có thể thực hiện được vì bản thân HTTP là stateless.


4. Kết nối của HTTP

1 kết nối được kiểm soát tại layer truyền tải, do đó về cơ bản nằm ngoài phạm vi của HTTP. Dù HTTP không yêu cầu giao thức truyền tải cơ bản phải dựa trên sự kết nối, vì chỉ yêu cầu nó đáng tin cậy hoặc không bị mất message (ít nhất là trình báo 1 lỗi). Trong số hai giao thức truyền tải phổ biến nhất trên Internet, TCP thì đáng tin cậy còn UDP thì không. HTTP do đó dựa vào tiêu chuẩn TCP vốn là connection-based (dựa trên sự kết nối).




 Source: Google

- Trước khi 1 client và server có thể trao đổi 1 cặp yêu cầu – phản hồi HTTP, chúng phải thiết lập 1 kết nối TCP, 1 quá trình vốn yêu cầu 1 số vòng lặp. Hoạt động mặc định của HTTP/1.0 là mở 1 kết nối TCP riêng biệt cho từng cặp yêu cầu hản hồi HTTP. Điều này làm nó kém hiệu quả hơn việc chia sẻ 1 kết nối TCP đơn lẻ khi nhiều yêu cầu được gửi liên tiếp.

- Để giảm thiểu lỗ hỏng này, HTTP/1.1 đã giới thiệu pipelining và kết nối liên tục: kết nối TCP bên dưới có thể được kiểm soát 1 phần bằng cách sử dụng tiêu đề Connection. HTTP/2 đã tiến 1 bước xa hơn bằng cách ghép các thông báo qua 1 kết nối duy nhất, giúp giữ cho kết nối ổn định và hiệu quả hơn. Các thử nghiệm đang được tiến hành để thiết kế một giao thức truyền tải tốt hơn phù hợp hơn với HTTP. 


5 . Một số HTTP Request method thường dùng:

Source : Viblo.asia


6. Các lỗi thường gặp khi duyệt giao thức HTTP là gì?

* HTTP 404: Not Found – Giao thức HTTP là gì

- Lỗi này xảy ra khá phổ biến. Nó được thể hiện bởi nhiều phản hồi khác nhau, ví dụ như 404 Error”, “Page cannot be displayed”, “Internet Explorer cannot display the webpage”… Nguyên nhân xảy ra lỗi này là vì địa chỉ trang web mà bạn truy cập không được tìm thấy trên máy chủ. Có thể vấn đề nằm ở tên miền bị lỗi hoặc địa chỉ web bạn soạn thảo bị sai chính tả.

- Để khắc phục tình trạng này, trước tiên bạn hãy reload lại trang web đó. Nếu vẫn lỗi, hay kiểm tra lại lỗi text URL. Khi đã chắc chắn rằng URL bạn điền hoàn toàn đúng, thử xóa bớt các phân trang đi.

- Ví dụ có một địa chỉ là: http://shopee.com/product//category/1/

- Nếu bạn hãy xóa phần 1/ đi, đó gọi là đi lùi mức địa chỉ của URL. Tương tự, nếu bạn xóa thêm display/ nữa nghĩa là bạn đã lùi 2 mức địa chỉ URL. Hãy xóa bớt các mức địa chỉ đi cho đến khi một trang web không bị lỗi hiện ra.

- Nếu đã xóa hết các mức rồi mà vẫn không có gì hiện ra thì bạn hãy truy cập thử vào máy chủ. Trong trường hợp kia thì sẽ là http://acmedelavie.com. Bằng cách điền địa chỉ trang web bị lỗi 404 vào thanh tìm kiếm, bạn sẽ biết được lý do tại sao nó xảy ra lỗi.

* HTTP 500 Internet Server Error

- Tương tự như lỗi 404, lỗi 500 cũng làm gián đoạn quá trình truy cập web của bạn. Tuy nhiên, 500 xảy ra là do phía bên máy chủ gặp trục trặc, không phải do kết nối hay đường truyền của bạn. Lỗi này thường xảy ra trong thời gian ngắn, vì thế bạn có thể thử reload lại trang cho đến khi hết lỗi.

- Nếu reload rồi mà vẫn không được thì bạn chỉ còn cách liên lạc với người quản trị trang web để hỏi về cách khắc phục.

* HTTP 403 Forbidden – Giao thức HTTP là gì

- Thông điệp HTTP 403 Forbidden được truyền đến khi thông tin luồng từ máy trạm bị máy chủ từ chối. Lỗi này thường xảy ra khi URL bị sai. Bạn nên kiểm tra lại kỹ chính tả trong URL. Nếu bạn chắc chắn URL là đúng thì nó có thể do nhầm lẫn của máy chủ. Trong trường hợp này bạn buộc phải liên hệ với quản trị viên.

- Khi máy chủ đặt ra các giới hạn truy cập vào website con mà bạn lại không nằm trong trường hợp được phép truy cập thì tất nhiên cũng sẽ hiện ra lỗi HTTP 403 Forbidden. Riêng trường hợp này không có cách nào có thể khắc phục được cho đến khi truy cập của bạn được cấp phép.


7. Phần kết

- Trên là những kiến thức cơ bản về HTTP. Hiểu được các thông tin trên các request message hay các response message giúp bạn dễ dàng hơn trong quá trình phát triển web, hay tìm lỗi.

 


Nhận xét

Bài đăng phổ biến từ blog này