HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜입니다.
웹에서 이루어지는 모든 데이터 교환 의 기초이며, 클라이언트 - 서버 프로토콜
하나의 완전한 문서는 텍스트
, 레이아웃 설명
, 이미지
, 비디오
, 스크립트
등 불러온 하위 문서들로 재구성됩니다.
클라이언트 - 서버 프로토콜
수신자 측에 의해 요청이 초기화되는 프로토콜.
HTTP 프로토콜은 TCP/IP 통신 위에서 동작하며, 상태가 없는(stateless)
프로토콜입니다.
위와 같은 특징 덕분에 서버는 세션
과 같은 별도의 추가 정보 를 관리하지 않아도 되고, 다수의 요청 처리
및 부하
를 줄일 수 있는 성능 상의 이점 이 생깁니다.
HTTP 프로토콜로 데이터를 주고받기 위해서는 서버와 클라이언트간의 데이터 요청, 응답이 필요합니다.
HTTP Request
: URL + 요청 메서드HTTP Response
: 상태 코드 + 응답 BodyHTTP Request
에 필요한 URL 과 요청 메서드,
HTTP Response
에 필요한 상태 코드에 대해 알아보도록 합시당.
URL 의 구조로는 아래 사진과 같습니다.
GET
: 존재하는 자원에 대한 요청POST
: 새로운 자원 생성PUT
: 자원 변경DELETE
: 자원 삭제HTTP 상태 코드
는 서버에서 설정해주는 응답 정보 입니다.
서버에서 응답으로 오는 주요 상태 코드를 쭉 나열해보자면
200번대의 상태 코드는 대부분 성공을 의미 합니다.
200
: GET 요청에 대한 성공204
: No Content. 성공했으나 응답 본문에 데이터가 없음205
: Reset Content. 성공했으나 클라이언트의 화면을 새로 고침하도록 권고206
: Partial Conent. 성공했으나 일부 범위의 데이터만 반환400번대 상태 코드는 대부분 클라이언트의 코드가 잘못된 경우 입니다. 유효하지 않은 자원을 요청했거나 요청이나 권한이 잘못된 경우 발생합니다. 가장 익숙한 상태 코드는 404
코드입니다. 요청한 자원이 서버에 없다는 의미죠.
400
: Bad Request, 잘못된 요청401
: Unauthorized, 권한 없이 요청. Authorization 헤더가 잘못된 경우403
: Forbidden, 서버에서 해당 자원에 대해 접근 금지404
: Not found405
: Method Not Allowed, 허용되지 않은 요청 메서드409
: Conflict, 최신 자원이 아닌데 업데이트하는 경우. ex) 파일 업로드 시 버전 충돌500번대 상태 코드는 서버 쪽에서 오류가 난 경우 입니다.
501
: Not Implemented, 요청한 동작에 대해 서버가 수행할 수 없는 경우503
: Service Unavailable, 서버가 과부하 또는 유지 보수로 내려간 경우URL
, 요청 메서드
, 상태 코드
를 이용해 데이터를 요청 하고 요청한 데이터에 대한 응답을 받을 수 있습니다.