2010-07-28 30 views

Trả lời

34

Bạn có nghĩa là trình duyệt xử lý nó như thế nào? Máy chủ gửi mã số 302 cùng với tiêu đề Location và trình duyệt yêu cầu URI mới được chỉ định bởi tiêu đề Location thay thế.

Không giống như 301 (Moved Permanently), trình duyệt tiếp tục sử dụng URI gốc để làm yêu cầu, trong trường hợp mã 302 biến mất

+3

Lưu ý rằng cho đến một vài năm trước, các trình duyệt không lưu trong bộ nhớ cache 301. Bây giờ, Chrome làm và tôi tin rằng Firefox có. IE9 sẽ. – josh3736

+0

vì vậy nếu không phải là trình duyệt đưa ra yêu cầu (và ứng dụng của nó) thì http sẽ không tự động chuyển hướng đến https. Bạn sẽ phải tự thay đổi chuỗi yêu cầu của mình thành https. – ozzy432836

+0

Tôi đang bối rối. Bạn có nghĩa là HTTP 301 sẽ hướng dẫn các trình duyệt lưu trữ mục tiêu chuyển hướng trong lịch sử của họ và xóa URL cũ không? Bởi vì bạn dường như đang nói ngược lại. – Pieter

2

Các bên trong của những gì? 302 là một mã trả về mà máy chủ cung cấp cho khách hàng, những gì khách hàng làm là tối đa nó. RFC cung cấp hướng dẫn về những gì khách hàng nên làm, nhưng trong thế giới thực 301, 302, 303 và 307 đều được xử lý theo cùng một cách bởi các trình duyệt chính.

+1

Tôi đã thấy IE8 và IE9 hoạt động khác nhau khi tiêu đề vị trí không chỉ định một URI tuyệt đối ... người dùng hãy cẩn thận – felickz

12

Máy chủ trả về phản hồi HTTP với mã 302, cho biết chuyển hướng tạm thời và bao gồm tiêu đề Location: cho biết URI mới, ví dụ:

HTTP/1.1 302 Found 
Location: http://some-other-url 

Và các tiêu đề tiềm năng khác theo quyết định của máy chủ.

Trình duyệt thường lấy điều này làm chỉ thị để tự động tạo yêu cầu mới, riêng biệt cho URI khác được chỉ định bởi tiêu đề vị trí. Khách hàng (trình duyệt) không phải là buộc phải thực hiện điều này (theo lý thuyết, chỉ hiển thị thông báo cho người dùng hoặc thực hiện bất kỳ thông báo nào khác), nhưng đó là cách khách hàng HTTP thường hoạt động.

Lưu ý rằng do 302 là chuyển hướng tạm thời, một khách hàng được xử lý tốt sẽ tiếp tục sử dụng URL cũ trong tương lai thay vì chuyển trực tiếp đến URL mới (301 là chuyển hướng vĩnh viễn).

+0

Gợi ý: Đọc câu trả lời này để hiểu sâu hơn. – erbdex

9

Từ: http://www.ietf.org/rfc/rfc2616.txthttp://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

10.3.3 302 Tìm thấy

Tài nguyên yêu cầu tạm thời nằm dưới một URI khác nhau. Vì việc chuyển hướng có thể được thay đổi nhân dịp, khách hàng NÊN tiếp tục sử dụng Yêu cầu-URI cho các yêu cầu trong tương lai. Câu trả lời này chỉ có thể lưu vào bộ nhớ cache nếu được chỉ định bởi trường Tiêu đề Bộ nhớ cache hoặc Hết hạn .

URI tạm thời NÊN được đưa ra bởi trường Vị trí trong phản hồi . Trừ khi phương thức yêu cầu là HEAD, thực thể của phản hồi NÊN có chứa một lưu ý siêu văn bản ngắn có liên kết đến (các) URI mới.

Nếu mã 302 trạng thái được nhận để đáp ứng với yêu cầu khác hơn GET hoặc HEAD, user agent PHẢI KHÔNG tự động chuyển hướng yêu cầu trừ khi nó có thể được xác nhận bởi người sử dụng, vì điều này có thể thay đổi các điều kiện theo mà yêu cầu đã được đưa ra.

Note: RFC 1945 and RFC 2068 specify that the client is not allowed 
    to change the method on the redirected request. However, most 
    existing user agent implementations treat 302 as if it were a 303 
    response, performing a GET on the Location field-value regardless 
    of the original request method. The status codes 303 and 307 have 
    been added for servers that wish to make unambiguously clear which 
    kind of reaction is expected of the client. 
1

Chỉ cần một Addon- Quan trọng hơn, nó là dành cho dừng khách hàng để đạt cùng url máy chủ với cùng một yêu cầu liên tục/thường xuyên.

Các vấn đề liên quan