Back-end/HTTP

HTTP에 대해서

shoney9254 2022. 3. 21. 23:01
반응형

김영한님의 '모든 개발자를 위한 HTTP 웹 기본 지식' 강의를 듣고 작성했습니다. 


HTTP 

http메시지에 모든 것을 전송할 수 있습니다. 

html, text, image, 음성, 영상, 파일, JSON, XML(API) 등 거의 모든 형태의 데이터가 전송 가능합니다. 

서버간 데이터를 주고 받을 때도 대부분 HTTP를 사용합니다. 

 

HTTP 버전
HTTP/1.1 은 1997년도에 나왔으며, 지금 가장 많이 알려진 버전입니다. 

HTTP/2 는 2015년에 성능 개선으로 나왔습니다. 

HTTP/3은 지금도 진행중입니다. TCP 대신 UDP를 사용하고 있습니다.

 

👇🏻아래 캡쳐 사진 h2, h3라고 표시된 것을 볼 수 있다. (h2= HTTP/2, h3=HTTP/3)

개발자 도구에서 http버전을 찾아 볼 수 있다.


HTTP 특징

1. 클라이언트 서버 구조

 - Request Response 구조

 - 클라이언트가 서버에서 요청을 하고 응답을 대기한다.

 - 서버는 요청에 대한 결과를 만들어서 응답한다. 

 - 클라이언트는 복잡한 로직없고 단순한 UI위주로 집중

 - 서버는 복잡한 로직에 대한 것에 집중할 수 있음

 

2. 무상태 프로토콜(스테이스리스)

 - 서버가 클라이언트의 상태를 보존

 - stateful : 상태를 유지한다. 로그인 정보를 유지할 때 stateful 사용. 브라우저 쿠키와 서버 세션등을 사용해서 상태 유지. (최소한으로 사용하는것이 좋다) - auth

 - stateless : 상태를 유지하지 않는다.(무한한 서버 증설 가능)

 - 단점 : 같은 시간에 엄청 많은 사람들이 동시에 요청하는 경우에 대용량 트래픽이 발생한다. 

 

3. 비연결성

 - '클라이언트 : 서버 = N : 1 ' 이런 상태에서 여러 클라이언트 중 자원을 요청하는 곳에만 연결을 해서 응답을 한다. 

 - HTTP는 기본이 연결을 유지하지 않는 모델이다. 

 - 1시간 동아 수천명이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수십개 이하로 매우 작음

 - 서버 자원을 매우 효율적으로 사용할 수 있음

 - 단점 : TCP/IP 연결을 새로 맺어야 함 - 3 way handshake 시간 추가 (요청 할 때마다 연결을 따로 함...)

 - 단점 : 웹 브라우저로 사이트를 요청하면 html 뿐만 아니라 자바스크립트, css, 추가 이미지 등 수많은 자원이 함께 다운로드된다. 

 - 위의 단점을 HTTP Persistent Connections로 문제를 해결할 수 있다. 

 - HTTP Persistent Connections(지속 연결)은 요청때 마다 연결하는게 아니라, 요청이 다끝날때 까지 연결을 끊지 않고 모든 요청이 다 끝나야만 연결을 종료한다. (h2, h3)

 

4. HTTP 메시지

 

요청메시지 (요청메세지도 body 가질 수 있음)

- HTTP 메서드 (GET, POST, PUT, DELETE ...)

- 절대경로 ("/"로 시작하는 경로)

- 쿼리 ("?"로 시작하는 쿼리)

- 버전 (HTTP/1.1)

 

 

응답메시지 

- HTTP 버전

- HTTP 상태코드 (200:성공, 400:클라이언트 요청 오류, 500: 서버 내부 오류)

- 이유 문구

- header-field : HTTP 전송에 필요한 모든 부가 정보

- 메시지 바디 : 실제 전송할 데이터

 

 

반응형

'Back-end > HTTP' 카테고리의 다른 글

[HTTP] HTTP 요청 방법 3가지  (0) 2022.11.15
HTTP 메서드  (0) 2022.05.29
URI, URL에 기본 개념 및 URL 문법  (0) 2022.03.21
인터넷 네트워크 용어 간단 정리  (0) 2022.03.19
사이트 도메인 명으로 IP 찾는법  (0) 2021.10.25