본문 바로가기

Computer engineering/Network

HTTP 상태코드

HTTP 상태 코드란?



클라이언트가 HTTP 리퀘스트를 했을 때, 서버에서 처리 한 결과를 나타낸 것을 'HTTP 상태코드'라고 합니다.




1XX(요청을 받았고, 작업을 진행 중)

클래스 = Infomational



 100

 진행중

 101

 프로토콜 전환 중

 102

 처리중





2XX-요청을 정상적으로 처리한 경우.

클래스 = Success



 200

 성공 

 201

 리소스가 만들어짐.

 202

 요청을 받았지만 처리되지 않음

 204

 성공. 컨텐츠는 제공하지 않음.

 206

 성공. 컨텐츠의 일부 부분만 제공.





3XX-요청을 완료하려면 추가적인 작업이 필요한 경우.

클래스 = Redirection



 301 

 URI영구 이동 됨

 302

 URI일시 이동 됨

 303

 302와 비슷하지만, GET 방식으로 얻어와야함.

 304

 리다이렉트와 관련이 없다. 리소스는 있지만, 조건이 안맞음.

 307

 일시 리다이렉트

 308

 영구 리다이렉트




4XX-클라이언트 요청이 올바르지 못한 경우.

클래스 = Client Error



 400

 서버가 처리 할 수 없는 요청

 401

 권한 없음

 403

 서버에서 요청을 거부(관리자에 의한 차단 또는 권한이 없을 때)

 404

 요청한 페이지가 없음.

 408

 타임 아웃

 414

 URI가 너무 긺.

 451

 법적인 이유로 이용 불가.






5XX-클라이언트가 올바르게 요청했지만 서버에서 응답을 못하는 경우.

클래스 = Server Error



 500

 서버 내부에서 오류가 발생해 수행 할 수 없음.

 502

 잘못된 게이트웨이(프로토콜 또는 프로토컬 연결해주는 장치의 문제)

 503

 서버를 일시적으로 사용 할 수 없음.

 505

 HTTP버전을 지원하지 않음.

 509

 대역폭 제한 초과

 520

 알수없는 에러






Example


1
2
3
4
5
6
7
8
9
10
11
12
for(int i=1; i<=5; i++){
    // 자바 코드 입니다.          
    // 요청 하는 작업 ~~~~~~
    //        
 
    //
    //작업이 끝나면 
    //
    responseCode = urlConnection.getResponseCode();
    if (responseCode == 200
            break;
//sleep(500);
}

cs


일시적으로 실패 할 수있는 경우를 대비하여 이런식으로 짜기도 합니다.


응용을 더 한다면 


200이 아닌 경우의 로그를 서버에 남기는 방법도 있습니다.


활용한다면 여러 방법으로 응용 할 수 있겠죠? ㅎㅎ






'Computer engineering > Network' 카테고리의 다른 글

[Nginx] /etc/nginx/site-available/default  (0) 2019.03.03