[問題]瀏覽器對http 基礎認證的處理

看板Web_Design作者 (davi.chang)時間8年前 (2017/02/18 09:41), 編輯推噓0(009)
留言9則, 2人參與, 最新討論串1/1
目前手邊有一台webserver,當ie瀏覽器連線到此server時,如果瀏覽器未通過認證則會 發出一個401狀態給瀏覽器,觀察伺服器裡面回應401狀態的code如下 void send_r_unauthorized(request * req, const char *realm_name) { SQUASH_KA(req); req->response_status = R_UNAUTHORIZED; if ((req->http_version != HTTP09) ) { req_write(req, http_ver_string(req->http_version)); req_write(req, " 401 Unauthorized" CRLF); print_http_headers(req); req_write(req, "WWW-Authenticate: Basic realm=\".\"" ); req_write(req, realm_name); req_write(req, CRLF); req_write(req, "Content-Type: " HTML CRLF CRLF); /* terminate header */ } #if 1 if (req->method != M_HEAD ) { req_write(req,"<HTML><HEAD><TITLE>401 Unauthorized</TITLE></HEAD>\n" "<BODY> 入力されたユーザー名、あるいはパスワードに誤りがあり、本製品の管理画面 にアクセス できません。以下の内容を参考にして、再度入力を試みてください 。・・ ・\n</BODY></HTML>\n"); } req_flush(req); #else if (req->method != M_HEAD) { req_write(req, "<HTML><HEAD><TITLE>401 Unauthorized</TITLE></HEAD>\n" "<BODY><H1>401 Unauthorized</H1>\nYour client does not " "have permission to get URL "); req_write_escape_html(req, req->request_uri); req_write(req, " from this server.\n</BODY></HTML>\n"); } req_flush(req); #endif } 我發現當ie瀏覽器3次認證錯誤後,它會顯示server所回應的錯誤訊息頁面 而chrome瀏覽器則會一直嘗試輸入帳密 想問一下ie瀏覽器在3次認證錯誤後是對server回應的401狀態做了甚麼處理? 有沒有軟體可以觀察到瀏覽器做了甚麼處理? 還有為何錯誤訊息的頁面只有在認證視窗下按下取消或者是ie瀏覽器3次認證錯誤才會出 現?我看server程式只要沒通過認證它每次都有送出那段錯誤訊息頁面的html給瀏覽器。 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.30.31 ※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1487382100.A.2E6.html

02/18 09:53, , 1F
要知道做了什麼處理,看文件或source code啊
02/18 09:53, 1F

02/18 10:07, , 2F
為什麼頁面在取消才會出現,不就瀏覽器設計成這個樣子?
02/18 10:07, 2F

02/18 10:23, , 3F
通常瀏覽器收到401,是依照WWW-Authenticate指定的認證方式
02/18 10:23, 3F

02/18 10:26, , 4F
(顯示UI向使用者)取得認證要的資訊然後再送一次,讀不讀
02/18 10:26, 4F

02/18 10:26, , 5F
response body、讀了要不要顯示那就瀏覽器自己的事,就像
02/18 10:26, 5F

02/18 10:27, , 6F
301 redirect就算有body,瀏覽器也是看header就直接轉址了
02/18 10:27, 6F

02/18 10:27, , 7F
不會顯示什麼東西,至於IE設計成送3次放棄顯示body,那就是
02/18 10:27, 7F

02/18 10:27, , 8F
IE設計成這樣而已啊
02/18 10:27, 8F

02/18 11:36, , 9F
了解,那瀏覽器相關文件跟source code網路上找的到嗎?
02/18 11:36, 9F
文章代碼(AID): #1OfwPKBc (Web_Design)
文章代碼(AID): #1OfwPKBc (Web_Design)