- vừa được xem lúc

HTTP Request và HTTP Response (series HTTP & HTTPS)

0 0 36

Người đăng: Trung nguyễn văn

Theo Viblo Asia

Ở phần trước chúng ta đã tìm hiểu qua về http. Ở bài viết này chúng ta sẽ tìm hiểu chi tiết về request và response của http https://viblo.asia/p/http-la-gi-series-http-https-maGK7rv95j2

HTTP Request

HTTP request là máy khách gửi và yêu cầu dữ liệu đến máy chủ bằng một phương thức như GET hoặc POST. Hành vi của một trang web thường sẽ khác nhau tùy thuộc vào việc bạn có đã đăng nhập hay chưa.
Để truy cập máy chủ web, máy khách kết nối với cổng TCP 80 (443 cho HTTPS) trên máy chủ. Sau đó, nó sử dụng kết nối đó để gửi request đến máy chủ.

<img title='image.png' alt='image' src='/attachments/62644885-41c1-4be5-9b00-1d1d7dee2527' width="500" data-meta='{"width":500,"height":271}'>

Phương thức HTTP

Phương thức này là loại yêu cầu HTTP và được mô tả trong Request-line. Có các loại phương thức sau:

Phương thức Ý nghĩa
GET Dùng để lấy thông tin từ sever theo URI đã cung cấp
HEAD Response trả về không có body, chỉ có header
POST Gửi thông tin tới sever thông qua các form http
PUT Ghi đè tất cả thông tin của đối tượng với những gì được gửi lên
PATCH Ghi đè các thông tin được thay đổi của đối tượng
DELETE Xóa thông tin trên server
CONNECT Thiết lập một kết nối tới server theo URI
OPTIONS Mô tả các tùy chọn giao tiếp cho resource
TRACE Thực hiện một bài test loop - back theo đường dẫn đến resource

Phương thức thường được sử dụng là get, post, put, delete

Phương thức GET

  • Đặc trưng
    • Chuỗi truy vấn sẽ được hiển thị trong trường URL của trình duyệt của bạn.
      • ex: user=jhon&pass=java
    • Chuỗi truy vấn không thích hợp để gửi một lượng lớn dữ liệu.
  • Dưới đây là thành phần của 1 request <img title='image.png' alt='image' src='/attachments/dc8a3332-ead6-4e55-b813-93e342f5da41' width="800" data-meta='{"width":800,"height":380}'>

Phương thức POST

  • Đặc trưng
    • POST có thể gửi dữ liệu lớn.
    • Nội dung đầu vào nằm trong phần "message body" và không được hiển thị trong URL của trình duyệt như GET.
    • Tuy nhiên, "message body" có thể xác nhận bằng cách phân tích, vì vậy nó không an toàn về mặt bảo mật. <img title='image.png' alt='image' src='/attachments/66953f60-0d39-4085-99b8-9881dc9fec8c' width="800" data-meta='{"width":800,"height":455}'>

HTTP header fields

  • là những thông tin mà máy khách và máy chủ có thể chuyển bổ sung trong các request và response.
Tên field Ý nghĩa
WWW-Authenticate Xác định phương thức xác thực sẽ được sử dụng cho URL được truy cập
Host Tên máy chủ đích và tên DNS
User-Agent Hiển thị thông tin về loại trình duyệt và hệ điều hành được người dùng sử dụng
Referer Hiển thị địa chỉ của trang web trước đó
If-Modified-Since Thông tin được lưu trữ dưới dạng "bộ nhớ cache cục bộ" của trình duyệt web nhưng sẽ chuyển tiếp nếu trang web được cập nhật hoặc thay đổi sau ngày và giờ đã chỉ định
Clear-Site-Data Xóa dữ liệu đã lưu trữ (cookie, bộ nhớ, bộ nhớ cache, v.v.)
Accept Thông báo cho máy chủ về loại dữ liệu bạn muốn nhận
Cookie Có một cookie HTTP được gửi từ máy chủ và được lưu trữ trong trình duyệt web của bạn
Set-Cookie Gửi cookie từ máy chủ đến trình duyệt web của bạn
Content-Disposition Nếu thấy thuộc tính này, browser sẽ mở hộp thoại cho download file
Content-Type chỉ định kiểu MIME kiểu tài liệu, ví dụ như là text/html, image/gif, application/pdf,…
Content-Length kích thước của response body, ví dụ như browser dựa vào thông tin này để biết được tiến độ của việc download file.

HTTP Response

  • là phản hồi mà máy chủ đã xử lý dữ liệu được gửi từ máy khách và trả lại cho máy khách. Khi bạn gửi yêu cầu đến máy chủ, quá trình xử lý theo phương thức được thực hiện trên máy chủ và kết quả xử lý sẽ được trả về. <img title='image.png' alt='image' src='/attachments/4a41ddc9-1016-401b-a57f-c272b57c354a' width="704" data-meta='{"width":704,"height":267}'>

  • Status line: Phiên bản HTTP và 200 cho biết rằng quá trình xử lý của máy chủ web đã thành công.

  • Response Headers: Có thông tin chi tiết về response.

  • Có 1 dòng trống để phân tách header và body

  • Body: chứa HTML, hình ảnh, v.v.

Tài liệu tham khảo:

Bình luận

Bài viết tương tự

- vừa được xem lúc

Authorization header

Bài viết này sẽ cung cấp thông tin chi tiết về Authorization header. API sử dụng Authorization để đảm bảo rằng người dùng truy cập dữ liệu một cách an toàn.

0 0 127

- vừa được xem lúc

Tìm hiểu về HTTP Status Code

Nếu bạn là một web developer hoặc thường xuyên làm việc với các API chắc chắn bạn đã quá quen thuộc với các con số 200, 404, 500... chúng là các Status Code của HTTP. Vậy có khi nào bạn tự hỏi ngoài c

0 0 40

- vừa được xem lúc

OkHttp - Performance issues - Lưu ý khi sử dụng

Giới thiệu vấn đề. Gần đây bạn mình có gặp 1 vấn đề liên quan đến việc sử dụng Okhttp, bạn ấy và mình cùng tìm hiểu và đã tìm ra nguyên nhân.

0 0 40

- vừa được xem lúc

Sự khác nhau giữa GET và POST trong HTML

GET và POST là hai kỹ thuật phổ biến để gửi dữ liệu đến server và browser cần chúng để giao tiếp với server. Hai phương thức này khác biệt ở chỗ phương thức GET thêm dữ liệu được mã hóa vào URI trong

0 0 37

- vừa được xem lúc

API với Postman (Phần 3)

Sau 2 bài viết, chúng ta đã hiểu thế nào là client và server, cách chúng sử dụng HTTP để nói chuyện với nhau và việc xác định định dạng dữ liệu để hiểu nhau. Có lẽ trong đầu chúng ta sẽ có câu hỏi: Là

0 0 71

- vừa được xem lúc

Tìm hiểu về URI, URL và URN

Cá nhân mình, và mình tin là còn rất nhiều người đã từng phân vân các khái niệm URI, URL và URN. Nhân tiện tìm hiểu về chúng, mình có viết lại theo ý hiểu của mình để làm tài liệu tra cứu sau này cũng

0 0 25