디지털 포렌식 #19 (HTTP 상태 코드)

0

디지털포렌식

목록 보기
86/115

    1. 사이트 오류 뜨면 볼 수 있는 화면이다.

HTTP 상태 코드란 클라이언트가 보낸 요청에 대해 서버(호스트)가 응답하는 코드를 의미힌다.

분류하면, 다음과 같다.

100(Informational) : 요청을 받았으며 프로세스를 계속 진행합니다.

100(Continue) : 서버는 100을 표시함으로써, 요청의 첫번째를 받았고 나머지를 기다리고 있음을 나타낸다. 따라서 요청자는 요청을 지속한다.
101(Switching Protocol) : 요청자가 서버에 프로토콜 전환을 요청하였고, 서버는 이를 승인하는 중이다.
102(Processing) : 서버가 요청을 수신하였고, 처리 중이지만 아직 제대로 된 응답을 제공할 수 없음을 나타낸다.

200(Success) : 요청을 성공적으로 받았으며 인식했고 수용하였습니다.

200(OK) : 요청은 성공적이었고, 정보가 요청에 따른 응답으로 반환된다.
201(Created) : 요청은 성공적이었고, 그 결과 새로운 Resource가 생성되었다. (일반적으로, POST, PUT 요청에 뒤따른다)
202(Accepted) : 요청은 수신하였지만, 그에 응해 줄 수 없음을 의미한다. 서버가 다른 요청을 다루고 있거나 배치 프로세스를 하고 있는 경우를 의미한다.
203(Non-Authoritative Information) : 반환된 Meta 정보가 Origin Server의 것과 일치하지 않지만, Local/3rd Party에서 모아졌음을 의미한다.
204(No Content) : 요청은 받아들여졌지만, 반환해줄 Content가 없음을 나타낸다.
205(Reset Content) : 요청을 완수한 이후, 사용자 Agent에게 이 요청을 보낸 문서 View를 갱신하라는 지시이다.
206(Partial Content) : Client가 복수의 스트림을 분할하여 다운받고자 범위 헤더를 전송했을 때 사용된다. 클라이언트가 이어받기를 시도하면, 웹서버는 이에 대한 응답코드로 206번과 함께 Range헤더에 명시된 Data부터 전송한다.

  • 이 때, 전송 순서와는 상관없이 "Random"하게 전송된다는 것을 기억해야 한다. 그래서 Packet에 기록된 Range를 보고 순서를 판단해야한다.

207(Multi-Status) : 여러 Resource가 여러 상태 코드인 상황이 적절한 경우에 해당되는 정보를 전달한다.
208(Already-Reported) : 동일 컬렉션으로 묶은 복수의 내부 Member를 반복적으로 여는 것을 피하기 위해 사용된다.

300(Redirection) : 요청 완료를 위해 추가 작업 조치가 필요합니다.

300(Multiple Choice) : 요청에 대해서 하나 이상의 응답이 가능하기 때문에, 사용자Agent는 선택을 반드시 해야할 때 사용
301(Moved Permanently) : 요청한 리소스의 URI가 변경되었음을 의미합니다.
302(Found) : 요청한 리소스의 URI가 일시적으로 변경되었음을 의미
303(See Other) : Client가 요청한 리소스를 다른 URI에서 GET 요청을 통해 얻어야 할 때 사용.
304(Not Modified) : Cache를 목적으로 사용된다. Client에게 응답이 수정되지 않았음을 알려주어, Client가 계속해서 응답의 Cache를 사용할 수 있음을 의미
305(Use Proxy) : 요청한 응답은 반드시 프록시를 통해서 접속해야함을 의미. 다만 보안상 문제로 사용하지 않고 있음.
306(Unused) : 더이상 사용되지 않으며, 현재는 추후 사용을 위해 예약되어 있다.

307(Temporary Redirect)

클라이언트가 요청한 리소스가 다른 URI에 있으며, 이전 요청과 동일한 메소드를 사용하여 요청해야 할 때, 서버가 클라이언트에 이 응답을 직접 보냅니다. 이것은 302 Found HTTP 응답 코드와 동일한 의미를 가지고 있으며, 사용자 에이전트가 반드시 사용된 HTTP 메소드를 변경하지 말아야 하는 점만 다릅니다. 만약 첫 요청에 POST가 사용되었다면, 두번째 요청도 반드시 POST를 사용해야 합니다.

308(Permanent Redirect) : 리소스가, HTTP 응답 헤더의 Location:에 명시된 것과 영구히 다른 URI에 위치하고 있음을 의미한다. 301과 동일한 의미를 가지고 있지만, 다만 사용자 에이전트가 반드시 HTTP 메소드를 변경하지 말아야 하는 점만 다릅니다. (Post를 사용하면 Post, Get이면 Get)

400(Client Error) : 요청의 문법이 잘못되었거나 요청을 처리할 수 없습니다.

400(Bad Request) : 잘못된 문법으로 인하여 서버가 요청하여 이해할 수 없음 의미
401(Unauthorized) : 표준에서는 승인되지 않았지만, 의미상 이 응답은 '비인증(unauthenticated)'를 의미한다. 즉 Client는 요청한 응답을 받기 위해서는 반드시 스스로를 인증해야 합니다.
402(Payment Required) : 나중에 사용될 것을 대비해 예약된 코드
403(Forbidden) : Client 콘텐츠에 접근할 권리를 가지고 있지 않음을 의미. 401과 다른 점은 서버가 클라이언트가 누구인지 알고 있습니다.
404(Not Found) : Server는 요청받은 리소스를 찾을 수 없음을 의미한다. Browser에서는 알려지지 않은 URL을 의미한다. 즉,API에서 종점(주소)은 적절하지만 리소스 자체는 존재하지 않음을 의미할 수 있다.
405(Method Not Allowed) : 요청한 메소드는 서버에서 알고 있지만, 제거되었고 사용할 수 없음을 의미. 또한, 어떤 API에서 리소스를 삭제하는 것을 금지할 수 있습니다. 필수적인 메소드인 GET과 HEAD는 제거될 수 없으며, 그래서 405를 리턴할 수는 없다.
406(Not Acceptable) : 서버가 서버 주도 콘텐츠 협상을 수행한 후, 사용자 에이전트에서 정해준 규격에 따른 어떠한 콘텐츠도 찾지 않았을 때, 사용한다.
407(Proxy Authentication Required) : 401과 비슷하지만 프록시에 의해 완료된 인증이 필요 의미
408(Request Timeout) : 요청을 한 지 시간이 오래된 연결에 일부 서버가 전송한다, 어떤 때에는 이전에 클라이언트로부터 어떠한 요청이 없었다고 하더라도 보내지기도 합니다. 이것은 서버가 사용되지 않는 연결을 끊고 싶어하는 것을 의미한다. (무조건 보내지는 코드는 아니다.)
409(Conflict) : 요청이 현재 서버의 상태와 충돌될 때 보냅니다.
410(Gone) : 요청한 콘텐츠가 서버에서 영구적으로 삭제되었으며, 전달해 줄 수 있는 주소 역시 존재하지 않음을 의미.
411(Length Required) : 서버에서 필요로 하는 Content-Length 헤더 필드가 정의되지 않은 요청이 들어왔기 때문에 서버가 요청을 거절합니다.
412(Precondition Failed) : 클라이언트의 헤더에 있는 전제조건은 서버의 전제조건에 적절하지 않음을 의미
413(Payload Too Large) : 요청 엔티티는 서버에서 정의한 한계보다 큼을 의미
414(URI Too Long) : 클라이언트가 요청한 URI는 서버에서 처리하지 않기로 한 길이보다 김을 의미
415(Unsupported Media Type) : 요청한 미디어 포맷은 서버에서 지원하지 않음을 의미
416(Requested Range Not Satisfiable) : Range 헤더 필드에 요청한 지정 범위를 만족시킬 수 없음을 의미
417(Expectation Failed) : Expect 요청 헤더 필드로 요청한 예상이 서버에서는 적당하지 않음을 의미
418(I'm a teapot) : 서버는 커피를 찻 주전자에 끓이는 것을 거절합니다. (만우절 농담 코드)
421(Misdirected Request) : 서버로 전달된 요청은 응답을 생성할 수 없음을 의미. 서버에서 요청 URI와 연결된 스킴과 권한을 구성하여 응답을 생성할 수 없을 때 보내진다.
422(Unprocessable Entity (WebDAV)) : 문법 오류로 인하여 따를 수 없음을 의미
423(Locked (WebDAV)) : 리소스는 접근하는 것이 잠겨있다.
424(Failed Dependency (WebDAV)) : 이전 요청이 실패하였기 때문에 지금의 요청도 실패하였습니다.
426(Upgrade Required) : 서버는 지금의 프로토콜을 사용하여 요청을 처리하는 것을 거절함. (Upgrade 필요하다는 뜻)
428(Precondition Required) : 오리진 서버는 요청이 조건적이어야 합니다. 클라이언트가 리소스를 GET해서, 수정하고, 그리고 PUT으로 서버에 돌려놓는 동안 서드파티가 서버의 상태를 수정하여 발생하는 충돌인 '업데이트 상실'을 예방을 위해 사용된다.
429(Too Many Requests) :사용자가 지정된 시간에 너무 많은 요청을 보냈다.
431(Request Header Fields Too Large) : 요청한 헤더 필드가 너무 크다.
451(Unavailable For Legal Reasons) : 사용자가 요청한 것이 불법적인 리소스임을 의미

500(Server Error) : 서버가 명백히 유효한 요청에 대한 충족을 실패했습니다.

500(Internal Server Error) : 웹 사이트 서버에 문제가 있음을 의미하지만, 서버는 정확한 문제에 대해 더 구체적으로 설명할 수 없습니다.
501(Not Implemented) : 서버가 요청을 이행하는 데 필요한 기능을 지원하지 않음을 의미
502(Bad Gateway) : 서버가 게이트웨이로부터 잘못된 응답을 수신했음을 의미
503(Service Unavailable) : 서버가 요청을 처리할 준비가 되지 않았습니다.
504(Gateway Timeout) : 웹페이지를 로드하거나 브라우저에서 다른 요청을 채우려는 동안 한 서버가 액세스하고 있는 다른 서버에서 적시에 응답을 받지 못했음을 의미
505(HTTP Version Not Supported) : 서버에서 지원되지 않는 HTTP 버전을 클라이언트가 요청하였음을 의미
506(Variant Also Negotiates) : 서버에 내부 구성 오류가 있는 경우 발생합니다
507(Insufficient Storage) :선택한 가변 리소스는 투명한 서버에 내부 구성 오류가 있는 경우 발생
508(Loop Detected (WebDAV)) : 서버가 요청을 처리하는 동안 무한 루프를 감지한 경우 발생
510(Not Extended) : 서버가 요청 이행을 위해추가 확장이 필요함을 의미
511(Network Authentication Required) : 클라이언트가 네트워크 액세스를 얻기 위해 인증할 필요가 있음을 의미


https://datatracker.ietf.org/doc/html/rfc7231

  • RFC 2324 표준문서

https://www.whatap.io/ko/blog/40/
https://ko.wikipedia.org/wiki/HTTP_%EC%83%81%ED%83%9C_%EC%BD%94%EB%93%9C
https://namu.wiki/w/HTTP/%EC%9D%91%EB%8B%B5%20%EC%BD%94%EB%93%9C
https://velog.io/@jennyfromdeblock/Http-%EC%9D%91%EB%8B%B5%EC%BD%94%EB%93%9C-%EC%A0%95%EB%A6%AC%ED%95%98%EA%B8%B0

0개의 댓글