HTTP에 대해서 이해가 부족해서 다시 공부해보았다.
확실히 눈에 보여지지않고 이론적이다보니, 흡수가 어렵다.
(이해한대로 작성하였기에 틀릴수도 있습니다. 계속 공부하며 수정해 나가겠습니다.)
HTTP는 HyperText Transfer Protocol의 줄임말로
HTML과 같은 문서를 전송하기 위한 Application Layer 프로토콜이다.
클라이언트와 서버 사이에서 데이터가 교환되는 방식인 HTTP messages에는 다음과 같은 두 가지 유형이 있다.
- 요청(Requests): 클라이언트에 의해 전송되는 메세지
- 응답(Responses): 요청에 대한 서버의 답변 메세지
-HTTP의 큰특징은 무상태성(Stateless)dlek.
start line & status line : start line에는 요청이나 응답의 상태를 나타내며, 항상 첫번째줄에 위치
HTTP headers : 요청을 지정하거나, 메시지에 포함된 본문을 설명하는 헤더의 집합
empty line : 헤더와 본문을 구분하는 빈 줄
body : 요청과 관련된 데이터나 응답과 관련된 데이터 또는 문서를 포함, 요청과 응답의 유형에 따라 선택적으로 사용
start line: 구조적으로 세가지 요소가 있다.
요청타입
URI
HTTP 버전
가장 먼저 등장하는 요청 타입은 수행할 작업을 설명하는 HTTP method를 나타낸다.
URL, URI 요청대상은 어떤 method를 사용하냐에 따라 요청 형식이 달라진다.
Header: 기본 구조를 따른다. 대소문자 구분 없는 문자열과 클론값을 입력한다.
Body: 요청의 본문이며 구조의 마지막에 위치한다. 모든 요청에 body가 필요하지는 않는다.
Status line
응답의 첫 줄은 Status line이라고 부르며 다음의 정보를 포함한다.
Header: 기본 구조를 따른다. 대소문자 구분 없는 문자열과 클론값을 입력한다.(요청 Header와 동일)
Body: 201, 204와 같은 상태 코드를 가지는 응답에는 본문이 필요하지 않다.
Single-resource bodies(단일-리소스 본문) :
Multiple-resource bodies(다중-리소스 본문) : 서로 다른 정보를 담고 있는 body
200 – 확인
모든 것이 작동합니다
201 – 생성됨
새 리소스가 생성되었습니다.
204 – 콘텐츠 없음
리소스가 성공적으로 삭제되었습니다. 응답 본문이 없습니다.
304 – 수정되지 않음
반환 된 날짜는 캐시 된 데이터입니다 (데이터는 변경되지 않음).
400 잘못된 요청
요청이 잘못되었거나 처리 할 수 없습니다. 정확한 오류는 오류 페이로드에 설명되어야합니다. 예 : "JSON이 유효하지 않습니다".
401 – 미확인
요청에는 사용자 인증이 필요합니다.
403 금지
서버가 요청을 이해했지만 거부하거나 액세스가 허용되지 않습니다.
404 찾을 수 없음
URI 뒤에는 리소스가 없습니다.
500 내부 서버 오류
API 개발자는이 오류를 피해야합니다. 글로벌 캐치 블로그에서 오류가 발생하면 스택 추적이 기록되고 응답으로 반환되지 않아야합니다.
출처 https://blog.restcase.com/5-basic-rest-api-design-guidelines/