Coding/Develop
산을 옮기는 자는 작은 돌을 밀어내는 것부터 시작한다. -공자-

브라우저와 웹서버에서의 에러코드

기타
작성자
브리더(Breder)
작성일
2018-08-31 16:16
조회
893

본 에러코드에 대한 설명은 여러 온라인 페이지를 통하여 수집되고, 개인의 경험을 토대로 정리된 문서로
코드 발생경험 및 프로그램 목적에 따라 잘못 표현된 내용이 있을 수 있으며, 지속하여 업그래이드 될 예정입니다.(원인, 해결 내용)


잘못된 부분이 있거나 보충되어야할 내용을 발견해주시면 댓글로 말씀해주시면 감사하겠습니다.



CODE
DESCRIPTION
CAUSE
100
  Continue


HTTP 100- Continue정보는 서버와의 상태 응답코드로 지금까지 보낸 모든 정보가 정상이고, 클라이언트의 요청이나 수행된 사항을 모두 무시하고 지속하여 정보를 보내주어야함을 의미함

- 다른 시스템 세마포어를 만들 수 없음'을 의미
- 세마포어는 여러 프로세스를 통해 병렬 프로그래밍 또는 사용자에 대한 플랫폼 액세스를 제어하는데 사용된다.
- 이 오류는 인쇄물 가져오기, 파일 복사, 파일삭제 또는 기타 일상적인 컴퓨터 작업과 같이 윈도우의 특정기능을 올바르게 수행하지 못하게 할 수 있음
- 오류의 원인 : SQL Server 데이터베이스에서 대/소문자를 구분하지 않는경우

- 세마포어 : 프로그램내에서 공유 자원에 대한접속을 제어하기 위하여 사용되는 신호, 병행 내지
  병렬로 동작되는 둘 이상의 프로세서 사이에서 마이크로세서 시간이나 입출력 접속구(port)와 같은
  공유 자원을 동시에 사용할 수 없기 때문에, 한 프로세서가 사용하고 있는 동안에 세마포어를 세워서
  다른 프로세서를 대기시키고 사용이 끝나면 해제시키는 방법으로 사용한다.


 100-Continue 사용 이유서버와 클라이언트간의 대역폭을 절약(파일 업로드/다운로드)하기위하여 사용 API의 요청시 서버가 본문을 전송하기 전에 유효하지 않은 인증을 확인하고 요청을 거부함으로 대역폭을 절약할 수 있게 함. 요청 정보를 Expect Header로 전송
오랫동안 사용하기 위해 노력해왔으나, 지속적인 문제가 발생되어 사용을 금하게 됨

101
  Switching Protocols


- 서버는 클라이언트의 요청대로 Upgrade 헤더에 따라 다른 프로토콜로 바꿀것임
(HTTP 1.1에서 처음 등장)
- Google chrome의 오류
- 크롬을 사용하여 인터넷을 탐색하면 이 오류가 발생할 수 있는데 크롬과 웹사이트간의 기존 http 연결이 끊어지면 발생할 수 있다.


- 오류의 원인
> 구글 크롬 설치 프로그램에서 설치과정 중 PC에 임시 디렉토리를 만들수 없을 때
> DNS 프리 페칭 중일 때
> 방화벽으로 인하여 탐색이 불가할 때
> 바이러스 성 감염이 되었을 때
> 잘못된 레지스트리 항목이 발견되었을 때
> 인터넷 연결이 원할하지 않을 때


프리페치 : 진행중인 처리와 병행하여 필요하다고 생각되는 명령 또는 데이터를 사전에 판독하는 것 또는 일련의 과정(프리패칭 파일)   

200
  OK


- 오류 없이 전송 성공
- 모든 것이 정상적임, GET이나 POST 요청 뒤에 문서가 온다. 이것은서블릿의 기본 상태다.
    setStaus를 사용하지 않으면 이 상태코드를 얻게된다.


201
  Create, POST


- 명령 실행 및 성공
- 서버에서 문서를 만들었음, Location 헤더는 그 URL을 가리킨다.


202
  Accepted


- 서버가 클라이언트의 명령을 받음
- 요청이 수행되었지만 처리는 끝나지 않았음


203
  Non-authoritative Information


- 서버가 클라이언트 요청에 대해 일부만 전송
- 문서는 정상적으로 반환되었지만 복사본이 사용되었기에 응답 헤더중 일부가 정확하지 않을 수 있음 (HTTP 1.1에서 처음 등장)

204
  Non Content


- 클라이언트 요구를 처리했으나 전송할 데이터가 없음
- 사용자가 페이지를 주기적으로 리로드 하던 중 이전 페이지가 이미 만료되었을 때 사용할 수 있다.하지만 새로고침에 의한 응답 헤더나 <META HTTP-EQUIV="Refresh"...> 같은 헤더를 사용해서 페이지를 자동으로 리로드 시켰을 때는 동작하지 않는다. 왜냐하면 이상태 코드를 반환하면 추후의 리로딩이 멈추기 때문이다. 하지만 자바스크립트로 리로드하게 해주는 것은 작동한다.

205
  Reset Content


- 호출할 새문서가 없을 때 발생해결 및 사용
- 브라우저는 문서창을 호출하기 위하여 리셋해야 한다.
  - 브라우저가 CGI 폼 필드를 전부 지우도록 할 때 사용된다.


206
  Partial Content


- 사용자의 브라우저가 Range 헤더와 함께 요청의 일부분을 보냈고 서버는 이를 수행했음
- Video Ware가 여러버전이 설치될 경우 버전 충돌이 발생 됨


300
  Multiple Choices


- 최근에 옮겨진 데이터를 요청 함
- 요청된 문서가 여러 군데서 발견되었음
- 해결 : 서버는 해당하는 모든 문서들을 나열할 것이다. 만약 서버가 선호하는 선택이 있으면 Location 응답헤더에 나열해야 한다.


301
  Moved Permenently


- 요청한 데이터를 변경된 임시 URL에서 찾음 : 요청된 문서는 어딘가에 있으며 그 문서에 대한 URL은 Location 응답헤더에 주어졌음
-
해결 : 브라우저는 자동적으로 새 URL의 링크를 따라가야함


302
  Moved Permanently
- 요청한 데이터가 변경된 URL에 있음을 명시

- 301과 유사하지만 새 URL은 임시 저장 장소로 해석됨 

- HTTP 1.0에서는 'Moved Temporarily'였다. 그리고 HttpServletResponse의 상수는 SC_FOUND가 아니라 SC_MOVED_TEMPORARILY다. 이것은 매우 유용한 헤더인데 이 헤더를 통해 브라우저가 자동적으로 새 URL의 링크를 따라가기 때문임  

- 이 상태 코드는 유용하기 때문에 이 상태 코드를 위해 sendRedirect라는 특별한 메소드가 있음

- response.sendRedirect(URL)을 사용하는 것은 response.setStatus(response.SC_MOVED_TEMPORARILY)와 response.setHeader("Location",url)를 쓰는것에 비해 몇 가지 장점이 있음.


첫째. 더 쉽게 사용할 수 있음

둘째. sendRedirect을 써서 서블릿이 그 링크를 포함한 페이지를 자동으로 만들어 줌

        (자동으로 redirect를 따라갈 수 없는 오래된 브라우저에서도 볼 수 있게 해준다.) 

셋째. sendRedirect에서는 상대 URL이 절대 URL로 해석되기 때문에 상대 URL로 다룰 수 있음
       이 상태 코드는 종종 301번과 혼용됨
 

예. <http://host/~user>(>맨 마지막에 '/'이 빠짐)과 같이 오류가 있는 요청에 대해 어떤 서버는 301을, 어떤 서버는 302를 보낸다. 기술적으로 브라우저는 원 요청이 GET이었다면 자동적으로 리다이렉션을 따라 가도록 되어있다. 더 자세한 사항은 307헤더를 봐야함
303
  See Other
- 요구한 데이터를 변경하지 않았기 때문에 문제가 있음

- 301, 302와 같지만 원래의 요청이 POST였을 경우 리다이렉트 되는 문서
(Location 헤더에 주어졌다.) GET을 통해 받아야함
304
  Not modified
- 클라이언트의 캐시에 이 문서가 저장되었고 선택적인 요청에 의해 수행됨

- 보통 지정된 날짜보다 더 나중의 문서만을 보여주도록 하는 If-Moddified-Since 헤더의 경우 서버는 클라이언트에게 캐시에 저장된 이전 문서를 계속 사용해야 한다고 말할 것임
305
  Use Proxy
- 요청된 문서는 Location 헤더에 나열된 프록시를 통해 추출되어야함
 

  400번대 에러 : 클라이언트 소프트웨어(Browser)가 서버에 HTML 문서를 요구 했을 때 발생할 수 있는 에러

400
  Bad request
요약. 잘못된 접근, 없는 경로나 파일에 접근할 경우 발생

- 요청사항에 문법적인 잘못된 부분이 있음.

- 클라이언트로 부터 처리할 수 없는 요청을 수신하였음

- 잘못된 경로나 파일에 접근한 경우

- 문법에 오류로 인하여 서버가 요청사항을 이해할 수 없음
401.1
  Unauthorized(권한없음)
401번대 에러 요약. 브라우저가 서버에게 지정된 코드(암호화 된)를 전달하지 못했을 때 발생

- 접속 실패. 이 에러는 서버에 로그온하려는 요청 사항이 서버에 들어있는 권한과 비교했을 시 맞지 않을 경우 발생

- 해결 : 요청한 데이터(자원)에 접근할 수 있는 권한을 부여 받기 위해서 서버 운영자에게 요청 해야 함.
401.2
  Unauthorized
요약. 서버 설정으로 인한 접속실패

- 서버에 로그온하려는 요청사항이 서버에 들어있는 권한과 비교했을 때 맞지 않을 경우 발생

- 흔히 www-authenticate head filed를 전송하지 않아 발생

401.3

  Unauthorized
요약. 자원에 대한 ACL에 기인한 권한이 없음

- 클라이언트가 특정자원에 접근할 수 없을 때 발생

- 자원의 종류 

> 페이지

> 클라이언트의 주소 입력란에 명기된 파일

> 클라이언트가 해당 주소로 접속할 때 이용되는 또 다른 파일

- 해결 : 접근할 전체 주소를 다시 확인해 보고 웹 서버 운영자에게 클라이언트가 자원에 접근할 권한이 있는지 확인.

401.4

  Unauthorized
요약. 필터에 의한 권한 부여 실패

- 웹서버가 서버에 접속하는 사용자들을 확인하기 위해 설치한 필터 프로그램이 있음을 의미

- 서버에 접속하는 데 이용되는 인증과정이 필터 프로그램에 의해 거부된 것을 말함

401.5

  Unauthorized
요약.  ISA PI/CGI 어플리케이션에 의한 권한부여 실패

- 이용하려는 Web-Server Address에 ISA PI나 CGI 프로그램이 설치되어 있어 사용자의 권한 검증을 요구함으로 인증 과정이 해당 프로그램에 의해 거부된 것을 말함
402
  Payment Required
요약. 지불 요청이 예약 됨

- 온라인 거래 형태를 위해 개발되었으나 일반적으로 사용되지 않음

- 자동이체, 체납 발생 코드로 사용되기도 함(체납된 경우 해당 코드로 체납정보를 알고 대처할 수 있게함)
403
  Forbidden(금지)
403번대 에러 요약. 권한없는 경로나 파일에 접근, 기능을 요청할 경우 발생 

요약. 사용 권한에 관계없이 내용울 볼 수 없음

- 접근이 거부된 문서를 요청

- 권한없는 경로나 파일에 접근

- 파일 이름이 잘못되었거나 서버의 디렉토리 퍼미션(접근 허가/허락)이 잘못되었을 때 발생됨
403.1
  Forbidden
요약. 수행 접근 금지

- CGI나 ISA-PI 혹은 실행시키지 못하도록 되어있는 디렉토리 내의 실행 파일을 실행하려고 했을 때 발생함
403.2
  Forbidden
요약. 읽기 접근 금지(실행 권한이 없음)

- 브라우저가 접근한 디렉토리에 사용할 수 있는 디폴트 페이지가 없을 경우에 발생함

403.4

  Forbidden
요약. SSL이 필요(SSL을 실행할 수 없음)

- 접근하려는 페이지가 SSL로 보안 유지되고 있으나 실행할 수 없음을 알려줌

- 해결 : 이 경우 브라우저가 128비트의 SSL을 지원하는지를 확인해야함

403.5

  Forbidden
요약.  SSL 128이 필요

- 403.4와 동일한 내용

403.6

  Forbidden
요약. IP 주소 거부

- 서버가 사이트에 접근이 허용되지 않은 IP주소로 사용자가 접근하려 했을 때 발생된다.

403.7

  Forbidden
요약. 클라이언트 확인 필요

- 접근하려는 자원이 서버가 인식하기 위해서 브라우저에게 클라이언트 SSL을 요청하는 경우 발생하게 됨

- 자원을 이용할 수 있는 사용자임을 입증하는데 사용됨

403.8

  Forbidden
요약. 클라이언트의 사이트 접근 거부

- 웹 서버가 요청사항을 수행하고 있지 않았거나 해당 사이트에 접근하는 것을 허락하지
않았을 경우에 발생함

403.9

  Forbidden
요약. 연결된 사용자 수(트래픽) 과다

- 웹서버가 부하가 걸린 상태에 있어서 요청을 수행할 수 없을 경우에 발생됨

403.10

  Forbidden
요약. 서버의 설정이 옳바르지(구성이 잘못되어 금지) 않음

- 웹서버의 설정 부분에 문제가 있을 경우 발생됨

403.11

  Forbidden
요약. 패스워드 변경이 필요함

- 사용자 인증 단계에서 잘못된 패스워드를 입력했을 경우 발생됨

403.12

  Forbidden
- Mapper 접근 금지

- 클라이언트 인증용 map이 해당 웹사이트에 접근하는 것을 거부했을 경우에 발생함
404
  Not Found
요약. 400번 에러와 유사하나,  본래있던 웹 문서가 존재하지 않을 때 발생

- 이 주소에서는 어떤 내용도 발견할 수 없음

- 문서를 찾을 수 없음, 즉 찾을 수 없는 문서에 접근

- 이 에러는 클라이언트가 요청한 문서를 찾지 못한 경우에 발생함

- URL을 다시 확인한 후 주소가 올바로 입력되었는지를 확인해야함

- 파일이 폴더에 존재하는지, 저장된 파일명이 올바로 되어있는지 확인해야함

- 이 상태코드를 위한 HttpServletResponse:sendStatus에 비해 에러 메시지를 보여주는 에러 페이지를 자동적으로 만들어 준다는 장점이 있음
405
  Method not allowed
요약. 메소드를 (리소스를) 허용하지 않음

- Request 라인에 명시되어있는 메소드를 수행하기 위해 해당 자원의 이용이 허용되지 않았을 경우에 발생한다.

- 요청 메소드(GET, POST, HEAD, DELETE, PUT, TRACE 등)를 특정 자원에 대해서는 쓸 수 없음
406
  Not Acceptable
요약. 허용할 수 없음(받아들일 수 없음)

- 요청사항에 필요한 자원은 요청사항으로  전달된 Accept header에 따라 "Not Acceptable"내용을 가진 사항이 있을 경우에 발생함

- 지정된 자원이 클라리언트의 Accept 헤더에 명시된 것과 호환되지 않는 MIME content-type을 생성함
407
  Proxy Authentication Required
요약. 프록시 인증이 필요함

- 요청한 내용이 수행되도록 프록시 서버에게 인증을 받아야할 경우에 발생함

- 401과 비슷하지만 서버가 Proxy-Authenticate 헤더를 반환해야 함
408
  Request timeout
요약. 요청시간이 지남

- 클라이언트가 요청을 보내는 데 너무 오랜 시간이 소요됨
409
  Conflict
- 일반적으로 PUT 요청과 관계가 있음

- 보통 틀린 버전의 파일을 업로드할 경우에 발생함
410
  Gone
 요약. 요청한 문서를 영구적으로 사용할 수 없음

- 문서가 사라졌고 포워딩할 주소도 없음을 이야기함

- 404와 다른 점은 이 경우 문서가 완전히 사라졌다는 것을 서버가 알고있다는 점

- 404는 어떤 이유인지 모르지만 단지 요청한 것을 사용할 수 없다는 것을 의미함
411
  Length Required
- 클라이언트가 Content-Length를 보내지 않으면 서버가 처리할 수 없음
412
  Precondition Failed
요약. 선결 조건 실패

- Request-header field에 하나 이상에 선결 조건에 대한 값이 서버에서의 테스트 결과 false로 나왔을 경우에
발생함

- 요청 헤더에 설정되어 있는 어떠한 조건이 맞지 않음을 의미함
413
  Request entity too large
- 요청된 문서가 현재 서버가 다룰 수 있는 크기보다 큼. 

- 만약 서버에서 나중에 다룰 수 있다고 생각되면 Retry-After 헤더를 포함시켜야함
414
  Request-URI too long
- 요청한 URL이 너무 김

- 이 에러는 요청한 URI의 길이가 너무 길어 서버가 요청사항의 이행을 거부했을 경우에 발생함
415
  Unsupported media type
요약. 정의되지 않은 미디어형태를 요청하였을 때 발생

-  요청 사항에 포함된 콘텐츠 타입이 서버에서 지원하지 않는 타입이거나 

-  인코딩 상태가 지원되지 않는 콘텐츠일 경우 발생
416
  Requested Range Not Satisfiable
요약. 클라이언트가 요청에 적당하지 않은 Range 헤더를 포함시켰슴

-  Range 헤더의 범위가 서버의 정보를 벗어나거나 단위가 틀림 Range header 클라이언트가 서버에게 하나 이상의 문서를 요청할 때 사용되는 문서의 요청 정보
417
  Expectation Failed
- Expect 헤더(100-Continue)의 요청 정보 값이 맞지 않음

- Expect 헤더가 HTTP 요청에 지정되었음

- HTTP용 WebSphere MQ 브릿지가 Expect 헤더 필드를 지원하지 않음

- 프로그래머 응답 : Expect 헤더를 http 요청에서 제거해야함
  500번대 에러 : 서버 소프트웨어가 HTML 문서를 전달하는 과정에서 발생할 수 있는 에러 - NCSA HTTPD, Netsite, Apache, IIS)
500
  Internal Server Error
요약. 서버 내부 오류

- 웹 서버가 요청사항을 수행할 수 없을 경우에 발생

- 일반적인 'Server is confused'메시지. 종종 CGI 프로그램이나 서블릿의 결과가 잘못됐거나 적절하지 않은 헤더를 만들었을 때 발생함
501
  Not Implemented
요약. 요청사항이 적용되지 않음

- 이 에러는 웹 서버가 요청사항을 수행하는데 필요한 기능을 지원하지 않는 경우에 발생함

- 요청한 것을 서버에서 지원하지 않음

예) 클라이언트가 서버에서 지원하지 않는 PUT과 같은 명령을 내렸을 때 발생함
502
  Bad gateway
요약. 게이트웨이 상태가 좋지 않음

- 게이트웨이의 상태가 나쁘거나 서버가 과부하 상태일 때 발생

- 프록시나 게이트웨이의 역할을 하는 서버에서 볼 수 있음

- 초기 서버가 원격 서버로부터 부적절한 응답을 받았음을 나타냄
503
  Service Unavailable
요약. 서버가 응답이 없어 접속되지 않는 경우(타임오버)

 - 서비스 불가능

- 이 에러는 서비스가 현재 멈춤 상태 또는 현재 일시적인 과부하 또는 관리 상황일 때 발생함

- 처리할 수 있는 한계를 벗어나 과도한 요청이 들어와 서버가 응답할 수 없음을 의미

- 스레드나 데이터베이스 연결이 가득 차 있을 때 서블릿에서 이런 헤더를 반환함
(Retry-After 헤더를 낼 수 있다.)

> 접속자가 많은경우

> 접속자와 상관없이 서버의 과부하

> 접속자의 데이터가 서버로 집중되어 부하가 걸린경우
504
  Gateway timeout
- 프록시나 게이트웨이의 역할을 하는 서버에서 볼 수 있음

- 초기 서버가 원격서버로부터 응답을 받을 수 없음을 나타냄
505
  HTTP Version Not SupportedHTTP
- 서버가 요청 라인에 지정된 HTTP 버전을 지원하지 않음   
전체 0

전체 3
번호 썸네일 제목 작성자 작성일 추천 조회
3 블록체인 기초, 블록체인이란 무엇인가?
블록체인 기초, 블록체인이란 무엇인가?
블록체인 기초, 블록체인이란 무엇인가?
브리더(Breder) | 2018.10.30 | 추천 1 | 조회 890
브리더(Breder) 2018.10.30 1 890
2 브라우저와 웹서버에서의 에러코드
브라우저와 웹서버에서의 에러코드
브라우저와 웹서버에서의 에러코드
브리더(Breder) | 2018.08.31 | 추천 1 | 조회 893
브리더(Breder) 2018.08.31 1 893
1 자바(JAVA SE, JDK)다운로드 및 설치하기
자바(JAVA SE, JDK)다운로드 및 설치하기
자바(JAVA SE, JDK)다운로드 및 설치하기
브리더(Breder) | 2018.08.31 | 추천 1 | 조회 248
브리더(Breder) 2018.08.31 1 248

Google | Daum | Naver

COPYRIGHT ⓟ GOUSE.CO.KR | gwangname@gmail.com