네트워크

http 상태 코드 정리 및 예외처리

중요!!!!

200: 요청이 정상적으로 처리됨

403(Forbidden): 서버가 요청을 거부하고 있음 - 사용자가 리소스에 대한 필요 권한을 갖고 있지 않음

404(Not Found): 서버가 요청한 페이지를 찾을수 없음. 지정된 URL을 처리하기 위한 자원이 존재하지않음

500(내부 서버 오류): 서버에 오류가 발생하여 요청을 수행할 수 없음(예로 jsp익셉션 발생하는 경우)

200 번대 응답(Response) : 성공(Success)

200 -- 중요

OK

요청 정상 처리.

204

No Content

요청 정상 처리하였지만, 돌려줄 리소스 없음.

서버에서 처리 후, 클라이언트에 정보를 보낼 필요가 없는 경우 사용.

206

Partial Content

Range가 지정된 요청인 경우, 지정된 범위만큼의 요청을 받았다는 것을 알려줌.

300 번대 응답(Response) : 리디렉션(Redirection)

301

Moved Permanently

요청된 리소스에는 새로운 URI가 지정되어 있기 때문에, 이후로는 새 URI를 사용해야 한다는 것을 나타냄. (영구적인 URI 변경) -> 영구적으로 주소가 바뀌었을 경우, 301 코드와 함께 새로운 주소로 이동

검색엔진 최적화에 바람직(302와 비교했을때)

설명: aaa.com을 소유했던 사람이 bbb.com으로 사이트 주소를 옮겼을때

크롤러가 aaa.com에 접속했을때 301 redirect를 해준다면 aaa.com에서 인덱스한 내용의 주소가 bbb.com으로 바뀌었다는것을 감지하고 인덱스된 aaa.com의 주소를 자동으로 bbb.com으로 변경

-> ‘aaa’라는 키워드로 aaa.com이 검색결과에 나오던것이 bbb.com으로 나오게 됨

이렇게 되면 사이트 관리자는 손쉽게 검색엔진에 변경된 사항을 적용할수 있게되고 검색엔진을 통해 유입되는 트래픽을 잃지 않게 된다.

크롤러:웹 페이지를 방문하여 각종 정보를 자동적으로 수집하는 일을 하는 프로그램으로 검색엔진의 근간이 됨

302

Found

요청된 리소스에는 새로운 URI가 지정되어 있기 때문에, 이후로는 새 URI를 사용해야 한 다는 것을 나타냄. 301과 유사하지만, 302는 일시적인 URI 이동)

302의 경우 301과는 다르게 크롤러는 사이트가 옮겨갔다는 것을 감지하더라도 일시적으로만 옮겨간 것으로 간주하기 때문에 검색결과에 아무런 변화를 주지 않게 된다. 그래서 특정 키워드로 검색을 했을때 aaa.com이 나오던것이 bbb.com으로 업데이트되지 않게 됨.

304

Not Modified

요청한 리소스가 마지막 요청 이후 변경된 적이 없기 때문에 기존 클라이언트의 로컬 캐시 리소스를 사용하도록 알려줌.

300번대로 분류되어 있지만, 리디렉션과는 관계없는 처리를 함.

307

Temporary Redirect

임시로 페이지를 리다이렉트 함.

302 코드는 클라이언트가 POST등과 같이 GET 이 아닌 요청 메소드를 사용해도 결국 Redirect 는 GET으로 하게 되지만, 307 코드는 POST 로 요청한 경우 Redirect 도 POST 방식으로 한다는 데 있다.

400 번대 응답(Response) : 클라이언트 에러 (Client Error)

400

Bad Request

클라이언트의 요청 구문이 잘못됨.

브라우저는 이 응답을 200 OK 응답과 동일한 형태로 취급함.

401

Unauthorized

클라이언트 오류 상태 응답 코드는 해당 리소스에 유효한 인증 자격 증명이 없기 때문에 요청이 적용되지 않았음을 나타냄.

403과 비슷하지만 401의 경우 인증이 가능함.

403 -- 중요

Forbidden

접근 금지 응답. Directory Listing 요청(서버 파일 디렉토리 목록 표시) 및 관리자 페이지 접근 등을 차단하는 경우

파일 시스템 퍼미션 거부, 허가 되지 않은 IP 주소를 통한 액세스의 거부 등이 있음.

서버는 접근 거부에 대한 이유를 명시하여 보낼 수 있음.

404 -- 중요

Not Found

클라이언트가 요청한 리소스가 서버에 없음 일반적으로 주소를 잘못입력했을때 볼수 있음.

405

Mothod Not Allowed

허용되지 않는 HTTP 메서드를 사용함.

요청 메소드(GET, POST, HEAD, DELETE, PUT, TRACE 등) 를 특정 자원에 대해서는 쓸 수 없음

500 번대 응답(Response) : 서버 에러 (Server Error)

500 -- 중요

Internal Server Error

서버에서 클라이언트 요청을 처리 중에 에러가 일반적으로 404와 같이 많이 볼수 있는 에러 코드

503

Service Unavailable

서버가 일시적으로 요청을 처리할 수 없음.

서버가 과부하 상태이거나 점검중이므로 요청을 처리할 수 없음을 알려줌.

504

Gateway Timeout

서버를 통하는 게이트웨이에 문제가 발생하여 시간이 초과됨.

505

HTTP Version Not Supported

해당 HTTP 버전에서는 지원되지 않는 요청임을 알려줌.

jsp에서 에러 처리 3가지 방식

1. page디렉티브의 errorPage 속성을 사용하는 방법

newFile.jsp에 errorpage 속성을 설정하고

isErrorpage를 true를 주면

newFile.jsp에서 에러가 발생하면 해당 에러 페이지로 연결됨.

2.익셉션 종류에 맞추어 web.xml에 설정하는방법

페이지 디렉티브에 설정을 하지않고

익셉션에 따른 에러 jsp를 만들고

web.xml에 익셉션 종류와 그에 맞는 location(이동할 페이지)를 적어주고 newFile을 실행하면

에러페이지로 만들어둔 jsp가 나옴

3. 에러 코드에 맞추어 web.xml에 설정하는 방법

404 에러페이지를 만들고

web.xml에 해당 에러 코드에 따른 로케이션을 주고

존재 하지 않는 주소를 입력하였을경우

에러코드에 맞는 익셉션으로 연결된다.

이 에러를 다루는 3가지 방법 중

page디렉티브가 1순위 , 익셉션이 2순위, 에러코드가 3순위로

1순위가 있으면 1순위가 적용되고

1순위가 없고 2순위가 있으면 2순위가 적용되며

1,2순위가 없고 3순위가 있으면 3순위가 적용된다.

다없으면 해당 웹브라우저에서 제공하는 에러 페이지를 보여주게 된다.

'네트워크' 카테고리의 다른 글

HTTP 동작 순서  (0) 2021.04.22
TCP/IP 4계층(Layer)  (0) 2021.02.23
TCP 와 UDP  (0) 2021.02.23
OSI 7계층(Layer)  (0) 2021.02.23
TCP-(3way handshaking & 4way handshaking)  (0) 2021.02.16