인증이 실패하더라도 다양한 상황에서 http 서버 응답을 테스트해야 합니다. 인증이 실패하면 내 서버는 단순히 포함된 (또는 다른 자세한 메시지) 401 Unauthorized
응답 본문을 반환합니다.Unauthorized
예를 들어 curl
또는 을 사용하면 httpie
응답의 응답 본문을 얻습니다 401
.
$ curl http://10.5.1.1/bla
Unauthorized
$ curl http://10.5.1.1/bla --digest --user joe:wrong
Unauthorized
$ http http://10.5.1.1/bla -b
Unauthorized
$ http http://10.5.1.1/bla -b --auth-type digest --auth joe:wrong
Unauthorized
그러나 wget을 사용하여 이것을 시도하면 출력이 나오지 않습니다.
$ wget http://10.5.1.1/bla -q -O /dev/stdout
$ wget http://10.5.1.1/bla -q -O /dev/stdout --user joe --password wrong
이 경우 wget은 종료 코드 6을 반환하지만 응답 메시지를 확인해야 합니다.
다음은 httpie를 사용하여 캡처한 전체 트래픽 덤프입니다.
$ http http://10.5.1.1/bla --print hbHB
GET /bla HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: 10.5.1.1
User-Agent: HTTPie/0.9.2
HTTP/1.1 401 Unauthorized
Connection: keep-alive
Content-Length: 13
Content-Type: text/plain
Date: 2017-08-27 23:01:07
Server: Vistra-I St10 SW218 HW010
WWW-Authenticate: Digest realm="Vistra-I", qop="auth", nonce="a0c5d461f2b74b2b797b62f54200d125", opaque="0123456789abcdef0123456789abcdef"
Unauthorized
( Unauthorized
응답 본문의 메시지는 줄 바꿈으로 끝나므로 Content-Length: 13입니다.)
403
서버가 응답하는 경우 에도 마찬가지입니다 404
. wget
이 경우 응답 본문을 사용하는 방법을 아시나요 ?
2017-09-22 편집
--content-on-error
내 wget 1.17.1에서 옵션을 찾았습니다.wget 매뉴얼).
예를 들어 응답 코드의 경우에는 작동 하지만 OR 코드 404
에서는 작동하지 않습니다 .401
5xx
401
참고 로이 오류.
답변1
다음 명령을 사용하면 404
오류가 발생할 때 서버 응답을 얻을 수 있습니다 503
.wget 1.20.1
wget --no-verbose --save-headers --content-on-error=on --timeout=3 --tries=1 -O- http://127.0.0.1:8080/bla
출력 예:
HTTP/1.1 404 Not Found
X-Endpoint-Path: GET /bla
X-Sub-Calls-Count: 0
X-Mdc: XNIO-1 task-11550846786294
X-Child-Calls-Count: 0
X-Hop: 1
Date: Fri, 22 Feb 2019 14:46:26 GMT
Connection: keep-alive
Transfer-Encoding: chunked
Content-Type: application/json;charset=UTF-8
{"id":"266a8c43-81ae-4b73-bb0c-d3e0a37a11c4","createdAt":1550846786327,"httpCode":404,"code":"RESOURCE_NOT_FOUND","message":"RESTEASY003210: Could not find resource for full path: http://127.0.0.1:8080/bla"}http://127.0.0.1:8080/bla:
2019-02-22 15:46:26 ERROR 404: Not Found.
답변2
wget
응답 헤더는 다음 옵션을 사용하여 검색할 수 있습니다.
wget --server-response http://10.5.1.1/bla
오류가 발생했을 때 응답 본문을 검색할 수 있는 optino가 있는지 모르겠습니다.wget
다른 명령의 응답 본문을 사용하려면 curl
그대로 사용하세요.
curl http://10.5.1.1/bla
답변3
내 경우에는 "403 Forbidden"의 경우 다른 답변과 같이 사용해야 했지만 --content-on-error
어떤 이유로 -q
.
wget -q --content-on-error -O- http://...