TIL 21.05.22

Jaemin Jung·2021년 5월 22일
0

Today I Learned

목록 보기
25/62
post-thumbnail

오늘한일

HTTP에 대해서 이해가 부족해서 다시 공부해보았다.
확실히 눈에 보여지지않고 이론적이다보니, 흡수가 어렵다.

Achievement Goals

(이해한대로 작성하였기에 틀릴수도 있습니다. 계속 공부하며 수정해 나가겠습니다.)

  • HTTP messages의 구조를 설명할 수 있다.
  • HTTP의 동작 방식을 이해할 수 있다.
  • HTTP requests와 responses를 구분할 수 있다.
  • HTTP의 응답 메시지를 찾아볼 수 있다.

HTTP

HTTP는 HyperText Transfer Protocol의 줄임말로
HTML과 같은 문서를 전송하기 위한 Application Layer 프로토콜이다.

HTTP messages

클라이언트와 서버 사이에서 데이터가 교환되는 방식인 HTTP messages에는 다음과 같은 두 가지 유형이 있다.

  • 요청(Requests): 클라이언트에 의해 전송되는 메세지
  • 응답(Responses): 요청에 대한 서버의 답변 메세지

-HTTP의 큰특징은 무상태성(Stateless)dlek.

  1. start line & status line : start line에는 요청이나 응답의 상태를 나타내며, 항상 첫번째줄에 위치

  2. HTTP headers : 요청을 지정하거나, 메시지에 포함된 본문을 설명하는 헤더의 집합

  3. empty line : 헤더와 본문을 구분하는 빈 줄

  4. body : 요청과 관련된 데이터나 응답과 관련된 데이터 또는 문서를 포함, 요청과 응답의 유형에 따라 선택적으로 사용

요청(Requests)

start line: 구조적으로 세가지 요소가 있다.
요청타입 URI HTTP 버전

  • 가장 먼저 등장하는 요청 타입은 수행할 작업을 설명하는 HTTP method를 나타낸다.

  • URL, URI 요청대상은 어떤 method를 사용하냐에 따라 요청 형식이 달라진다.

  • HTTP 버전을 입력한다. 메세지의 구조를 결정한다.

Header: 기본 구조를 따른다. 대소문자 구분 없는 문자열과 클론값을 입력한다.

Body: 요청의 본문이며 구조의 마지막에 위치한다. 모든 요청에 body가 필요하지는 않는다.

  • Single-resource bodies(단일-리소스 본문) : 헤더 두 개(Content-Type과 Content-Length)로 정의된 단일 파일로 구성
  • Multiple-resource bodies(다중-리소스 본문) : 여러 파트로 구성된 본문에서는 각 파트마다 다른 정보

응답(Responses)

Status line
응답의 첫 줄은 Status line이라고 부르며 다음의 정보를 포함한다.

  • 현재 프로토콜의 버전(HTTP/1.1)
  • 상태 코드 - 요청의 결과 (200, 302, 404 등)
  • 상태 텍스트 - 상태 코드에 대한 설명

Header: 기본 구조를 따른다. 대소문자 구분 없는 문자열과 클론값을 입력한다.(요청 Header와 동일)

Body: 201, 204와 같은 상태 코드를 가지는 응답에는 본문이 필요하지 않다.

  • Single-resource bodies(단일-리소스 본문) :

    • 길이가 알려진 단일-리소스 본문은 두 개의 헤더(Content-Type, Content-Length)로 정의
    • 길이를 모르는 단일 파일로 구성된 단일-리소스 본문은 Transfer-Encoding이 chunked 로 설정되어 있으며, 파일은 chunk로 나뉘어 인코딩되어 있다.
  • Multiple-resource bodies(다중-리소스 본문) : 서로 다른 정보를 담고 있는 body

HTTP 상태 코드

200 – 확인
모든 것이 작동합니다

201 – 생성됨
새 리소스가 생성되었습니다.

204 – 콘텐츠 없음
리소스가 성공적으로 삭제되었습니다. 응답 본문이 없습니다.

304 – 수정되지 않음
반환 된 날짜는 캐시 된 데이터입니다 (데이터는 변경되지 않음).

400 잘못된 요청
요청이 잘못되었거나 처리 할 수 ​​없습니다. 정확한 오류는 오류 페이로드에 설명되어야합니다. 예 : "JSON이 유효하지 않습니다".

401 – 미확인
요청에는 사용자 인증이 필요합니다.

403 금지
서버가 요청을 이해했지만 거부하거나 액세스가 허용되지 않습니다.

404 찾을 수 없음
URI 뒤에는 리소스가 없습니다.

500 내부 서버 오류
API 개발자는이 오류를 피해야합니다. 글로벌 캐치 블로그에서 오류가 발생하면 스택 추적이 기록되고 응답으로 반환되지 않아야합니다.

출처 https://blog.restcase.com/5-basic-rest-api-design-guidelines/

profile
내가 보려고 쓰는 블로그

0개의 댓글