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
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
GET | POST |
---|---|
Câu truy vấn được đưa vào đường dẫn của request | Câu truy vấn được lưu trong body của request |
Bị giới hạn về độ dài | Khô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ệu | Phù 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 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é
Cá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,
Bình luận