본문 바로가기

강의 내용 정리/HTTP 웹 기본 지식

Section 3. HTTP 기본

1) 모든 것이 HTTP

2) 클라이언트 서버 구조

3) Stateful, Stateless

4) 비연결성

5) HTTP 메시지

-----------------------------------------------------------------------------------------------------------------------------------------

1) 모든 것이 HTTP

   - 원래 HTML보내는 프로토콜이었으나 현재 많은 파일을 보냄

   - HTML, TEXT

   - IMAGE, 음성, 영상, 파일

   - JSON, XML (API)

   - 거의 모든 형태의 데이터 전송 가능

   - 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용

- HTTP 버전 : HTTP/1.1 이 가장 중요

   - TCP 기반 : HTTP/1.1 HTTP/2

   - UDP 기반 : HTTP/3

 

-----------------------------------------------------------------------------------------------------------------------------------------

2) 클라이언트 서버 구조

1. 요청 2. 대기 3. 응답    ...3가지의 단순한 구조

 

 

-----------------------------------------------------------------------------------------------------------------------------------------

 

3) Stateful, Stateless

1. Stateless

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

- 장점 : 서버의 확장성 높음(스케일 아웃)

- 단점 : 클라이언트가 추가 데이터 전송

Stateful : 중간에 점원 바뀌면 장애 ( 서버에서 상태유지 필수 )

Stateless : 중간에 점원 바뀌어도 장애X ( 요청할때부터 필요한 데이터 다 담아서 전송 )

= 서버가 중간에 바뀌어도 된다.

= 서버 무한 증설 가능 (스케일 아웃)

 

1) Stateful : 중간에 서버 장애나면 처음부터

2) Stateless :중간에 서버 장애나도 괜찮음, 무한증설가능

#Stateless의 한계 : 최대한 무상태, 최소한 상태유지, 단점 : 데이터를 너무많이 보내야한다.

-----------------------------------------------------------------------------------------------------------------------------------------

 

4) 비연결성

 - 기본적으로 비연결성

지속연결 시 서버 내부적으로 정한 시간만큼 유지 ( 몇 초 ) ->시간절약

-----------------------------------------------------------------------------------------------------------------------------------------

 

5) HTTP 메시지

앞서 배웠던 HTTP 요청/응답 메시지

#HTTP 메시지 구조

 

#start-line

 1) 요청 메시지

   start-line = request-line : method SP(공백) request-target SP HTTP-version CRLF(엔터)

   - HTTP method (GET: 조회)

HTTP method

   - request-target ( /search?q=hello&hl=ko)

request-target

   - HTTP version

HTTP version

  2) 응답 메시지

   start-line = status-line : HTTP-version SP status-code SP reason-phrase(사람읽을수있는 문구) CRLF

   - HTTP 버전

   - HTTP 상태코드 : 요청 성공, 실패 나타냄

     . 200 : 성공

     . 400 : 클라이언트 요청 오류

     . 500 : 서버 내부 오류

   - 인간이 이해할 수 있는 짧은 단어

응답 메시지 (시작 라인)

#header

   - Host (대소문자구분X) 뒤에 붙여서 ' : '

#empty-line

   - CRLF

#message body

   - 실제 전송할 데이터

   - HTML 문서, 이미지, 영상, JSON 등등 byte로 표현할 수 있는 모든 데이터 전송 가능

 

 

 

 

 

 

 

 

 

 

 

 

 

 

출처 : 인프런 김영한님의 강의를 수강 후 정리한 내용입니다.

 

 

 

 

꾸준히 다시보자.

 

1. 220630

2. 220714

3. 220819

Recent Posts
Popular Posts
Recent Comments