HTTP

양희연·2020년 8월 11일
0

웹 개발 기초

목록 보기
5/6
post-thumbnail

💡 HTTP (HyperText Transfer Protocol)

웹을 이용하여 HTML로 작성된 하이퍼텍스트 문서를 주고받을 수 있는 프로토콜(통신규약)




📎 특징

통신방식

기본적으로 요청/응답 구조로 되어 있다.
클라이언트가 HTTP request를 서버에 보내면 서버는 HTTP response를 보내는 구조

stateless

요청이 오면 그에 응답을 할 뿐, 여러 요청-응답 끼리 연결되어 있지 않다.
👉 즉, 각각의 요청-응답은 독립적이다.

만일 여러 요청과 응답의 진행과정이나 데이터가 필요할 때는 쿠키나 세션 등을 사용하게 된다.



🏗 구조

> request

start line

GET / search HTTP / 1.1
① HTTP method: 해당 request가 의도한 action을 정의하는 부분
② Request target: 해당 request가 전송되는 목표 URI. 예를 들어 /login
③ HTTP 버전: 보통 1.1을 쓴다.

headers

해당 request에 대한 추가정보를 담고 있는 부분. key: value; 로 되어 있다.
① Host: 요청이 전송되는 target의 host url
② User-Agent: 요청을 보내는 클라이언트의 대한 정보

body

해당 request의 실제 메시지/내용
body가 없는 request 도 많다. 예를 들어 GET request 들은 대부분 body 가 없다.

> response

status line

HTTP/1.1 404 Not Found
① HTTP 버전
② status code: 응답 상태를 숫자로 나타내는 코드
③ status text: 응답 상태를 간략하게 설명해주는 부분

headers

response의 headers와 동일하다. 다만 user-agent 대신에 server header가 사용된다.

body

데이터를 전송할 필요가 없을 경우 body가 비어있다.




🕹 method

> GET

어떠한 데이터를 서버로부터 받아올 때 주로 사용하는 메서드
데이터 생성/수정/삭제 없이 받아오기만 할 때 사용한다.

> POST

데이터를 생성/수정/삭제 할때 주로 사용되는 메서드
데이터를 생성 및 수정할 때 많이 사용하기 때문에 대부분의 경우 request body가 포함되서 보내진다.

> PUT

데이터를 수정할 때 사용되는 메서드
POST와 겹치기 때문에 최근 몇년 사이에 POST에 밀려 잘 사용되지 않는 추세

💡 PUT과 PATCH 의 차이
PUT은 모든 정보를 수정할 때, PATCH는 어떠한 정보만을 수정하고 싶을 때 사용한다.

> DELETE

특정 데이터를 서버에서 삭제 요청을 보낼 때 쓰이는 메서드
POST에 밀려서 잘 사용되지 않는 추세



📡 status code

200 OK
문제 없이 다 잘 실행되었을때 보내는 코드

301 moved permanently
해당 URI가 다른 주소로 바뀌었을 때 보내는 코드

400 bad request
해당 요청이 잘못된 요청일때 보내는 코드
주로 요청에 포함된 input 값들이 잘못된 값들로 보내졌을때 사용되는 코드

401 unauthorized
유저가 해당 요청을 진행 할려면 먼저 로그인을 하거나 회원가입을 하거나 등등이 필요하다는 것을 나타낼 때

403 forbidden
유저가 해당 요청에 대한 권한이 없다는 뜻

404 not found
요청된 URI가 존재하지 않는다는 뜻

500 internal server error
서버에서 에러가 났을 때 사용되는 코드



⭐️ RESTful HTTP API

💡 REpresentational State Transfer (REST)

웹 상에서 사용되는 여러 리소스에 고유한 URI를 부여해 활용하는 것으로, 자원을 정의하고 자원에 대한 주소를 지정하는 방법론을 의미한다.


REST HTTP API

웹 상에서 사용되는 여러 리소스를 HTTP URI로 표현하고 그 리소스에 대한 행위를 HTTP Method로 정의하는 방식
👉 REST 특징을 지키면서 API를 제공한다는 의미

장점

RESTful API는 그 자체만으로도 API의 목적이 쉽게 이해가 된다.

RESTful API를 개발할 때 유의할점

  • / 는 계층 관계를 나타낼 때 사용된다.
  • URI 마지막 문자로 / 를 포함하지 않는다.
  • URI에 _는 주로 포함하지 않고 영어 대문자보다 소문자를 쓴다. 너무 긴 단어는 사용하지 않는다.
  • URI는 명사를 사용한다.
profile
꾸준히 나아가자!

0개의 댓글