Sự khác nhau giữa HTTP Proxy và SOCKS Proxy!

proxy-logo

HTTP Proxy là gì?

Đầu tiên mình xin giới thiệu chung về http proxy. Chức năng của http proxy là sẽ làm điểm trung gian để kết nối giữa client và web server (hay là giữa người dùng và Internet). Công việc của proxy server thường là:

  • Chuyển thẳng http request của client đến web server
  • Hoặc là sẽ sửa lại nội dung http request của client trước khi chuyển đến server
  • Hay là sẽ thay web server đối ứng request từ client

Trong HTTP/1.1 thì proxy được định nghĩa như sau: proxy mà không thay đổi nội dung request hay response thì được gọi là Transparent Proxy, còn ngược lại những proxy mà thay đổi nội dung request hay response thì được gọi là Non-Transparent Proxy. Trường hợp sử dụng proxy để thực hiện request HTTP. Trường hợp mà chúng ta thực hiện request http thông qua Http Transparent Proxy từ client thì bao gồm các bước đơn giản sau:

  • Client sẽ thiết lập kết nối TCP với HTTP Proxy thông qua 3way hand shake
  • Client sẽ chuyển HTTP request tới HTTP Proxy theo hình thức http://example.com/index.html chứ không phải là /index.html .
  • HTTP Proxy sẽ chuyển request đến server thông qua đường dẫn là /index.html .
  • Tiếp theo HTTP Proxy sẽ trả lại response nhận từ server cho client.

Trường hợp sử dụng proxy để thực hiện request HTTPS. Trường hợp này thì message đã được mã hóa nên request https nên HTTP Proxy không thể nhìn thấy nội dung bên trong của message dẫn đến không thể xử lý request từ client được. Để xử lý việc này thì HTTP/1.1 trở đi sẽ sử dụng CONNECT method. Và CONNECT method sẽ cho phép truyền tải message của 1 protocol khác trên HTTP protocol.

Các bước để thực hiện kết nối từ client đến HTTP Proxy như sau:

  • Client sẽ thiết lập kết nối TCP với HTTP Proxy thông qua 3way hand shake
  • Client sẽ chuyển CONNECT request đến HTTP Proxy
  • HTTP Proxy sẽ thiết lập kết nối TCP với Server thông qua 3way hand shake
  • HTTP Proxy sẽ chuyển response đến Client để thông báo việc chuẩn bị kết nối đã hoàn thành
  • Client sẽ đóng gói TLS/SSL message bằng HTTP và chuyển chúng đến HTTP Proxy
  • HTTP Proxy sẽ chuyển đổi những gói dữ liệu đã được đóng gói bằng HTTP thành TLS/SSL message và chuyển nó đến Server
  • Tiếp theo HTTP Proxy sẽ nhận response từ Server và chuyển ngược lại Client sau khi tiến hành đóng gói bằng HTTP

SOCKS Proxy là gì?

Thì SOCKS Proxy là một proxy sử dụng SOCKS transparent proxy protocol để kết nối giữa client và web server ở level L4 thay cho HTTP request. Các loại SOCKS protocol thường dùng là SOCKS4, SOCKS4a và SOCKS5. Các bạn muốn hiểu sâu hơn về SOCKS4 thì có thể tham khảo ở link này

https://quantrimang.com/ly-thuyet-socks-la-gi-117225

https://vietpn.com/tin-tuc-proxy-la-gi-sock-la-gi-42.html,

https://trungvanhoang.com/2016/05/03/fake-ip-proxy-socks-ip-la-gi/

Tóm lược nội dung ở link trên là client sẽ thực hiện lệnh CONNECT hoặc BIND đến SOCKS server để gửi yêu cầu được truyền message. Sau khi gửi yêu cầu thành công thì SOCKS server sẽ tiến hành kết nối client nội bộ với server bên ngoài.

Thêm một thông tin quan trọng nữa là: khi dùng HTTP Proxy thì việc chuyển đổi tên miền qua ip sẽ do HTTP Proxy đảm nhận nhưng khi dùng SOCKS Proxy thì việc chuyển đổi tên miền đấy sẽ do Client đảm nhận. Tức là khi client đóng gói http message bằng SOCKS thì phải đóng gói luôn địa chỉ ip và cổng access đến Server.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です