HTTP 프로토콜

김석재·2022년 10월 15일
0

CS

목록 보기
1/1

HTTP 프로토콜

프로토콜 : 상호간에 정의한 규칙을 의미. 특정 기기 간에 데이터를 주고받기 위해 정의되었다.


HTTP 프로토콜

상태가 없는 (stateless) 프로토콜. 상태가 없다는 말은 데이터를 주고 받기 위한 각각의 데이터 요청이 서로 독립적으로 관리가 된다는 말이다. (이전 데이터 요청과 다음 데이터 요청이 서로 관련이 없다는 말)

이러한 특징 덕분에 서버는 세션과 같은 별도의 추가 정보를 관리하지 않아도 되고, 다수의 요청 처리 및 서버의 부하를 줄일 수 있는 성능상의 이점도 생긴다.

HTTP 프로토콜은 일반적으로 TCP/IP통신 위에서 동작하며 기본 포트는 80번이다.

HTTP Request & HTTP Response

HTTP 프로토콜로 데이터를 주고받기 위해서 요청(Request)과 응답(Response)를 받아야 한다. 요청은 클라이언트(브라우저)에서, 응답은 서버에서 한다.

HTTP 요청 메서드

크게 네가지 주요 메서드를 가지고 있다.

  • GET : 존재하는 자원에 대한 요청
  • POST : 새로운 자원을 생성
  • PUT : 존재하는 자원에 대한 변경
  • DELETE : 존재하는 자원에 대한 삭제

HTTP 상태 코드

200번대 코드 : 성공

200번대의 상태 코드는 대부분 성공을 의미.

  • 200 : GET 요청에 대한 성공
  • 204 : No Content. 성공했으나 응답 본문에 데이터가 없음
  • 205 : Reset Content. 성공했으나 클라이언트의 화면을 새로 고침하도록 권고
  • 206 : Partial Conent. 성공했으나 일부 범위의 데이터만 반환

300번대 코드 : 리다이렉션

300번대의 상태 코드는 대부분 클라이언트가 이전 주소로 데이터를 요청하여 서버에서 새 URL로 리다이렉트를 유도하는 경우.

  • 301 : Moved Permanently, 요청한 자원이 새 URL에 존재
  • 303 : See Other, 요청한 자원이 임시 주소에 존재
  • 304 : Not Modified, 요청한 자원이 변경되지 않았으므로 클라이언트에서 캐싱된 자원을 사용하도록 권고. ETag와 같은 정보를 활용하여 변경 여부를 확인

400번대 코드 : 클라이언트 에러

400번대 상태 코드는 대부분 클라이언트의 코드가 잘못된 경우이다. 유효하지 않은 자원을 요청했거나 요청이나 권한이 잘못된 경우 발생한다. 가장 익숙한 상태 코드는 404 코드인데 이것은 요청한 자원이 서버에 없다는 의미.

  • 400 : Bad Request, 잘못된 요청
  • 401 : Unauthorized, 권한 없이 요청. Authorization 헤더가 잘못된 경우
  • 403 : Forbidden, 서버에서 해당 자원에 대해 접근 금지
  • 405 : Method Not Allowed, 허용되지 않은 요청 메서드
  • 409 : Conflict, 최신 자원이 아닌데 업데이트하는 경우. ex) 파일 업로드 시 버전 충돌

500번대 코드 : 서버 에러

500번대 상태 코드는 서버 쪽에서 오류가 난 경우.

  • 501 : Not Implemented, 요청한 동작에 대해 서버가 수행할 수 없는 경우
  • 503 : Service Unavailable, 서버가 과부하 또는 유지 보수로 내려간 경우

0개의 댓글