리소스 : URL을 검색해서 받아온 결과물(TEXT, HTML, JSON, IMAGE, ...)
HTTP 요청 메세지를 패킷 안에 담아 서버에게 전달 -> 메시지를 분석해 응답 메시지를 패킷에 담아 웹브라우저에 전달 -> 브라우저는 전달받은 데이터를 보여줌
HTTP 주요 메서드
PUT으로 수정 시 일부 값 누락하고 보낼 경우, 누락된 채로 수정 반영됨
ex) id, name, e-mail중 e-mail 없이 보냄 -> e-mail없는 데이터로 대체됨
PUT은 리소스의 주소를 정확히 알아야 한다.
PATCH : 리소스 부분 변경
HTTP 상태 코드 : 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능
1xx (정보) : 요청을 받았으며 프로세스를 계속 처리중
2xx (성공) : 요청을 성공적으로 처리
1) 200 : OK (요청 성공)
2) 201 : Created (요청 성공해서 새로운 리소스 생성, POST나 일부 PUT 이후 따라옴)
3) 202 : Accepted (요청을 수신했지만 아직 처리가 완료되지 않음. ex) 요청 접수 후 서버에서 1시간 뒤에 배치 프로세스가 요청을 처리함)
4) 204 : No Content (요청을 성공했지만, 응답 페이로드 본문에 보낼 데이터가 없음)
3xx (리다이렉션) : 요청 완료를 위해 웹 브라우저에서 추가 작업 조치(리다이렉션) 필요 -> 브라우저는 3xx 응답 결과에 Location 헤더가 있으면 위치로 자동 이동
1) 301 : Moved Permanently, 영구적 리다이렉션(URI가 영구적 변경)
2) 302 : Found , 일시적 리다이렉션(일시적 변경)
3) 303 : See Other, 일시적 리다이렉션(일시적 변경)
4) 304 : Not Modified, 결과 대신 캐시 사용(캐시 활용 리다이렉트)
-> 똑같은 리소스를 요청했을 때 새롭게 다운받지 않고 캐시에 저장되어 있는 리소스를 활용
-> 웹 브라우저가 계속적 다운을 하지 않아 퀘적한 웹 브라우저 환경 제공 가능
-> etag값으로 동일한 리소스인지 판단함(동일하다면 캐시에서 사용, 없으면 다운)
5) 307 : Temporary Redirect, 일시적 리다이렉션(일시적 변경)
6) 308 : Permanent Redirect, 영구적 리다이렉션(URI가 영구적 변경)
4xx (클라이언트 오류) : 요청의 문법이 잘못되었거나 요청을 처리할 수 없음
1) 400 : Bad Request, 잘못된 문법이나 메시지를 요청해서 서버가 이해할 수 없음
2) 401 : Unauthorized, 클라이언트가 해당 리소스에 대한 인증 필요
3) 403 : Forbidden, 서버가 요청을 이해했지만 승인 거부(인증은 되었지만(로그인), 접근 권한이 불충한 경우(인가)
4) 404 : Not Found, 요청 리소스를 찾을 수 없음
5xx (서버오류) : 서버가 정상 요청을 처리하지 못함
1) 500 : Internal Server Error, 서버 내부 문제로 오류 발생
2) 502 : Bad Gateway, 서버간 유효하지 않은 응답을 받은 경우
3) 503 : Service Unavailable, 서버가 일시적으로 요청을 처리할 준비가 되지 않음(유지보수를 위한 작동이 중단되거나 과부하가 걸린 서버) -> 서버가 다시 요청 처리 가능