Chào các bạn, tạm dừng những bài viết về kỹ năng code Spring Boot, hôm nay chúng ta sẽ tìm hiểu về chủ đề bên lề nhưng rất quan trọng không chỉ với Spring Boot mà còn với lập trình web nói chung, đó là Http.

Sơ lược về Http

Http ( HyperText Transfer Protocol hay Giao thức truyền dẫn siêu văn bản) là một giao thức mạng được thiết kế theo mô hình client – server giúp thực hiện giao tiếp giữa client và server theo các cặp request – response, client sẽ gửi request lên server để xử lý và nhận kết quả trả về bằng response.

Http request

Có những gì trong một request?

Để thực hiện giao tiếp với server, client sẽ khởi tạo và gửi đi những Http request, thường bằng cách nhấn vào những đường link hoặc button trong trình duyệt của mình.

Một Http request.Một Http request

Bắt đầu của Http request là Request Line bao gồm 3 thông tin:

  • Method: là phương thức mà request này sử dụng (thường là GET, POST, PUT và DELETE), trong ví dụ là GET.
  • URI (Uniform Resource Identifier): là địa chỉ định danh của tài nguyên được yêu cầu, trong ví dụ là /doc/test.html.
  • HTTP Version: là phiên bản Http đang được sử dụng, trong ví dụ là HTTP/1.1.

Sau đó là các trường Request Headers, giúp gửi thêm các thông tin bổ sung cho request và về client:

  • Accept: loại nội dung được chấp nhận cho response trả về từ server, trong ví dụ là image/gif, image/jpeg.
  • Accept-Language: ngôn ngữ mặc định của phía client, trong ví dụ là en-us (tiếng Anh Mỹ)
  • Accept-Encoding: các kiểu mã hóa được chấp nhận, trong ví dụ là gzip, deflate
  • User-Agent: thông tin về user-agent của người dùng, trong ví dụ là Mozilla/4.0
  • Content-Length: kích cỡ phần thân của request, trong ví dụ là 35

Về GET và POST

Đây là 2 phương thức được sử dụng phổ biến nhất đối với Http request, bảng dưới đây sẽ trình bày và so sánh một vài đặc điểm chính của 2 phương thức này

GETPOST
Câu truy vấn được đưa vào đường dẫn của requestCâu truy vấn được lưu trong body của request
Bị giới hạn về độ dàiKhông bị giới hạn về độ dài
Có thể được cached, bookmarked và lưu lại trong lịch sửKhông bị cached, bookmarked hay lưu lại trong lịch sử duyệt web
Không nên dùng cho dữ liệu quan trọng, chỉ nên dùng để nhận dữ liệuPhù hợp để dùng cho dữ liệu hoặc tác vụ quan trọng, bảo mật vì che giấu thông tin tốt hơn

Http response

Có những gì trong một response?

Một Http responseMột Http response

Qua ví dụ trên có thể thấy cấu trúc của Http response cũng khá tương tự với Http request, chỉ khác nhau ở chỗ request có Request Line còn đối với Http response là Status Line, và Status Line của response thì cũng bao gồm 3 phần:

  • Http-Version: phiên bản Http cao nhất hỗ trợ, trong ví dụ là HTTP/1.1
  • Status Code: mã kết quả trả về, trong ví dụ là 200
  • Reason-Phrase: mô tả về Status Code, trong ví dụ là OK

Http Status Code

Một điều cần chú ý khi code các API bằng Spring Boot là chúng ta cần tạo những response rõ ràng về ý nghĩa nhất để client có thể dễ hiểu và xử lý, và Status code của response là một yếu tố quan trọng tạo nên điều này. Hãy cùng tìm hiểu một vài Status Code thông dụng nhé

Một số Http Status CodeCác Http Status Code thông dụng

Lời kết

Trên đây là một vài kiến thức cơ bản về Http cũng như Http request và response, hy vọng đã giúp các bạn có được cái nhìn tổng quan về nó và ứng dụng vào quá trình học Spring Boot sau này. Trong những bài viết tới mình sẽ cung cấp cho các bạn thêm về REST cũng như cách sử dụng Postman để giúp việc học Spring Boot thuận tiện hơn nhé. Cảm ơn các bạn đã đọc bài và hẹn gặp lại.

Lê Sơn,