Không chính xác: nó phụ thuộc vào cách máy khách được cấu hình. Hãy sử dụng IE làm ví dụ cơ bản.
Nếu bạn định cấu hình IE với proxy rõ ràng : ví dụ: không có tùy chọn nào khác được đánh dấu, proxy sẽ được đặt thành thứ gì đó: 8080.
Người dùng nhập một địa chỉ
IE kiểm tra địa chỉ để khớp chuỗi với danh sách ngoại lệ proxy IE (nghĩa là "Bỏ qua proxy cho các địa chỉ này:")
a. Nếu nó khớp với một mục trong danh sách Bỏ qua , máy khách sẽ sử dụng DNS của chính nó để phân giải tên và sau đó máy khách kết nối trực tiếp với địa chỉ IP đích trên cổng 80 (giả định), sau đó gửi yêu cầu như:
GET /something.htm HTTP/1.1
Host: fulldomainame.example.com
b. Nếu không có danh sách bỏ qua nào khớp , hãy tiếp tục:
IE kết nối với proxy được cấu hình của nó và gửi yêu cầu của biểu mẫu:
GET http://fulldomainname.example.com/something.htm HTTP/1.1
Phần thưởng thực tế: việc sử dụng FQDN trong URL này là một cách bạn có thể nói rằng khách hàng nghĩ rằng nó đang nói chuyện với một proxy thay vì một máy chủ web thực sự
Proxy giải quyết tên máy chủ đó bằng DNS của chính nó , sau đó kết nối với trang đích (hoạt động như máy khách ở bước 2 ở trên), v.v., v.v.
Khi sử dụng WPAD / PAC:
Trong trường hợp sử dụng tập lệnh Web Proxy Auto Discovery (WPAD) hoặc Proxy Auto Cấu hình (PAC hoặc Autoconfig), chẳng hạn như tập lệnh được cung cấp bởi ISA / TMG khi bật chế độ tự động cấu hình, nó sẽ khác:
Người dùng nhập một địa chỉ
Máy khách tải xuống tệp wpad.dat / autoproxy.js / .pac hiện tại từ vị trí được định cấu hình của nó
Máy khách tìm kiếm hàm " FindProxyForUrl " trong tệp js và thực thi nó
Tập lệnh Autoproxy xử lý tên máy chủ và URL . Đây là một tệp javascript chức năng giới hạn, nhưng vẫn còn nhiều điều có thể:
a. điều này có thể bao gồm độ phân giải tên (IsInNet, DnsResolve)
b. điều này có thể bao gồm khớp chuỗi (ShExpMatch)
c. điều này có thể bao gồm đếm đến một triệu (i ++)
d. điều này có thể bao gồm các thông báo bật lên cảnh báo khó chịu nếu quản trị viên bị giật
- (hoặc chỉ buồn cười)
- ((hoặc gỡ lỗi))
Hàm FindProxyForUrl trả về ít nhất một chuỗi : một danh sách được sắp xếp của các proxy tốt nhất để sử dụng (dấu chấm phẩy được phân tách)
a. hoặc "TRỰC TIẾP" , trong trường hợp đó, khách hàng cần tự giải quyết tên đó và kết nối trực tiếp, theo trường hợp Bỏ qua ở trên
b. hoặc "PROXY proxyname: 8080" hoặc tương tự, trong trường hợp máy khách kết nối với cổng đó trên proxy đó, yêu cầu nó NHẬN URL đầy đủ và proxy thực hiện phân giải tên .
- Như một ví dụ : nếu chức năng kịch bản trở "PROXY yourProxy: 8080; TRỰC TIẾP" mà nói với khách hàng để kết nối với yourproxy trên cổng TCP 8080 để yêu cầu URL này, và nếu có kết nối không thể được thiết lập, thử đi trực tiếp.
Lưu ý rằng lỗi thiết lập phiên TCP không chính xác nhanh, do đó đây có thể không phải là trải nghiệm chuyển đổi dự phòng thú vị cho người dùng, nhưng không có gì thay đổi. Có lẽ.
Đôi khi có những trục trặc, sự tinh tế và hành vi không giải thích được, nhưng đối với hầu hết mọi thứ khi mọi thứ không bị phá vỡ theo những cách kỳ lạ và thú vị, trên đây là cách tôi đã thấy nó hoạt động trong nhiều năm. Các trình duyệt mới hơn đang tối ưu hóa hành vi và các công cụ song song và luôn luôn thử những điều thú vị, vì vậy hãy xem các tài liệu gần đây nhất cho trình duyệt đã cho của bạn để hiểu chi tiết tốt.
WinSock Proxy / Máy khách Tường lửa ISA / Máy khách TMG :
Nếu bạn quan tâm đến Máy khách Proxy Winsock (từ Máy chủ TMG / ISA), đó là một câu chuyện khác, với các bộ phận linh hoạt và chuyển động hơn. Quá nhiều thứ để đi vào đây, nhưng có những tài liệu xung quanh mô tả cách thức hoạt động của nó. Nói tóm lại: nó cắm vào Ổ cắm Windows và có thể chặn cả yêu cầu phân giải tên và lưu lượng truy cập dựa trên TCP / UDP trên cơ sở mỗi ứng dụng và mỗi người dùng. Rất mạnh mẽ, nhưng cũng không dùng nữa và đã không được cập nhật trong vài năm.
Khách hàng có thể thực sự bám víu:
Một lưu ý cuối cùng : Một khi máy khách HTTP đã quyết định nói chuyện với một proxy cho một trang web / url nhất định, không có cách nào để proxy nói với nó không .
Không có mã trạng thái HTTP hoặc tiêu đề cho "Tôi không phục vụ điều đó, thay vào đó bạn chỉ nên truy cập trực tiếp vào nó" ...
Khi khách hàng quyết định một URL cụ thể được cung cấp proxy, proxy-death-grip sẽ xảy ra.
Cách duy nhất để tránh điều đó là lấy logic lựa chọn ngay trước khi máy khách thực hiện kết nối của nó, trong danh sách PAC hoặc Bypass.
Lưu ý cuối cùng về các tệp Vùng và PAC
IE xử lý các trang web được kết nối TRỰC TIẾP - ngay cả khi chúng có dấu chấm trong URL - là một phần của Vùng mạng nội bộ cục bộ (theo mặc định - có thể đặt trong thuộc tính Vùng) và do đó sẽ thực hiện những việc như cho phép Xác thực Windows tích hợp cho các trang web đó (nghĩa là Xác thực Kerberos và / hoặc NTLM, trong suốt). Vì vậy, việc kiểm soát xem có thứ gì đó trong Khu vực mạng nội bộ cục bộ xác định mức độ tin cậy của nó đối với xác thực tự động hay không. Một lần nữa, ít nhất, theo mặc định.