2021_04_30

유지원·2021년 4월 30일
0

TIL - HTTP에 대하여

1. HTTP란?

[정의]
http는 Hyper Text Transfer Protocol의 약자이다.
HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜, 규약이다.
이렇게 규약을 정해놓았기 때문에 모든 프로그램들이 이 규약에 맞춰 서로 정보를 교환할 수 있게 된 것이다.

[동작]

클라이언트(사용자)가 브라우저를 통해서 url 등과 같은 경로를 통해서 요청(request)을 하면 서버에서는 해당 요청사항에 맞는 결과를 찾아서 사용자에게 응답(response) 하는 형태로 동작한다.

[특징]
1) 비연결성 (Connectionless)
http는 상시적으로 연결을 유지하지 않고 응답과 요청을 처리한다.
클라이언트 요청에 대해 서버가 응답을 마치면 연결을 끊어버린다.

--장점)
모든 연결을 유지하기 위한 리소스를 줄일 수 있다.

--단점)
동일한 클라이언트의 모든 요청에 대해 매번 연결/해제의 과정을 거쳐야 하기 때문에 오버헤드가 발생한다.

2)무상태성 (Stateless)
사용자의 정보나 통신 상태가 저장되어있지 않는다.

예를들어

요청A: 네이버 로그인
요청B: 네이버 메일 (로그인 필수)

라고 할 때 요청A와 요청B는 서로의 상태를 모른다는 것이 무상태성이다.

하지만 요청 B는 요청 A가 이루어졌을 때만 가능한데 요청 A가 이루어졌는지 아닌지 어떻게 확인할 수 있을까?

로그인, 회원가입 등의 상태를 기억하기 위해 '쿠키'를 사용한다.
사용자 정보가 쿠키에 저장되기 때문에 요청 A의 상태(로그인 했는지 안했는지)를 알 수 있는 것이다.

[HTTP request]
클라이언트가 서버에게 요청하는 것이다.
request는 여러가지 메소드를 가지고 있다.

조회(READ): GET
추가(CREATE): POST
갱신(UPDATE): PUT/PATCH
삭제(DELETE): DELETE

request는 크게 header와 body로 이루어져있다.
header에는 method, url, version 등이 포함되어있다.

[HTTP response]
서버가 클라이언트에게 응답하는 것이다.

response는 응답을 할 때 성공 여부에 따른 다양한 상태 코드를 반환한다. 대표적인 상태코드는 아래와 같다.

200번대: 요청 성공
400번대: 클라이언트 에러
500번대: 서버에러

response가 request와 다른점은 상태코드가 들어있다는 것이다.



오늘은 HTTP에 대하여 공부하였다.
다음시간에는 직접 서버 구현을 해본다
오늘은 여기까지

profile
안녕하세요 유지원입니다

0개의 댓글