kkkkkkkkkkkk
kkkkk
kkkkkkkkkkkk
전체 방문자
오늘
어제
  • 분류 전체보기
    • CS & OS
    • Algorithms
    • Laguage
    • Book
      • 객체지향의 사실과 오해
      • Effective Java
      • Spring boot 와 AWS로 혼자 구현하는 ..
      • 도메인 주도 계발 시작하기
    • DB
    • Spring
    • Spring Boot
    • JPA
    • Git
    • Clean Code
    • HTTP

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 객체지향 프로그래밍
  • 설계 원칙
  • 결합도
  • 역할
  • 응집도
  • 책임

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
kkkkkkkkkkkk

kkkkk

[모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 기본
HTTP

[모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 기본

2022. 10. 24. 14:59
  • Stateful, Stateless
  • 비 연결성 ( connectionless )
  • HTTP 메서드

 

무상태 프로토콜 ( Stateless )

  • 상태를 보존하지 않는 다는 뜻이다.

이러한 상태의 단점은 클라이언트에서 서버에 전송 한 정보여도 서버에서는 클라이언트의 상태를 저장하지 않아 계속해서 서버의 원하는 정보를 전송해야 한다.

Stateless 상태는 서버의 확장 ( scale out ) 이 쉽다.

 

어떠한 이벤트 때문에 클라이언트의 요청이 많아진다면 미리 서버를 많이 증설할 수 있다는 뜻이다.

 

 

상태유지 ( Stateful )

 

Stateful 상태면 클라이언트에서 보낸 정보를 서버에서 가지고 있어야 한다.

클라이언트의 정보를 가지고 있는 서버가 동작이 안된다면 해당 클라이언트 정보는 다른 서버가 가지고 있지 않기에 다시 다른 서버에게 클라이언트 정보를 전송해야 한다.

비연결성(connectionless)

  • 클라이언트가 서버에게 요청 후 서버는 요청에 대한 응답을 내려주고 연결을 끊는다.

이러한 통신의 장점은 하나의 서버가 다수의 클라이언트 요청을 처리할 수 있다.

 

만약 연결성인 경우 서버와 클라이언트가 통신 후에 연결이 끊어 지지 않아 해당 서버는 다른 클라이언트의 요청을 처리할 수 없다.

 

비연결성에도 단점이 존재한다.

연결을 끊다 라는건 클라이언트가 요청을 할 때마다 3 way handshake 를 해야한다.

 

보통 홈페이지에 요청을 보내면 html 만 응답으로 오는 것이 아니라 css, js, 이미지.. 등등 응답이 내려온다.

이러한 문제점을 HTTP 지속 연결 (Persistent Connections)으로 문제를 해결했다.

  • HTTP 초기

 

  • HTTP 지속 연결(Persistent Connections)

 

HTTP 메시지

  • HTTP 메시지의 구조는 아래 그림과 같다.

 

전체 구조는 위와 같은데 요청메시지와 응답메시지의 구조가 약간의 차이가 있다.

 

아래 그림을 보며 알아가보자.

 

  • HTTP 요청 메시지

 

body 본문도 가질 수 있다.

 

  • HTTP 응답 메시지

 

시작라인(start-line)

  • 요청(request-line)
    • method
      • get, post, put, 등
    • reuqest-target
      • 요청 대상 search?q=hello&hi=ko HTTP-vesion 구성
  • 응답(response-line)
    • HTTP-version status-Code reason-phrase(OK) 구성

 

HTTP 헤더(header)

  • 요청, 응답
    • 필드(Host, Content-Type 등) : value(필드에 해당하는 값) 구성

HTTP 전송에 필요한 모든 부가 정보를 포함하고 있다.

 

메시지 바디(Message Body)

  • 요청, 응답
    • 실제 전송 할 데이터를 포함(HTML, 이미지, 영상, JSON 등)
    • byte 로 표현할 수 있는 모든 데이터를 전송할 수 있다.
  •  

 

'HTTP' 카테고리의 다른 글

[모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 상태코드  (0) 2022.11.16
[모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 메서드 활용  (0) 2022.11.15
[모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 메서드  (0) 2022.10.24
[모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 기본 - 모든 것이 HTTP, 클라이언트 서버 구조  (0) 2022.10.08
[모든 개발자를 위한 HTTP 웹 기본 지식]URI와 웹 브라우저 요청 흐름 - URI, 웹 브라우저의 요청 흐름  (0) 2022.10.05
[모든 개발자를 위한 HTTP 웹 기본 지식] 인터넷 네트워크 - PORT, DNS  (2) 2022.10.04
[모든 개발자를 위한 HTTP 웹 기본 지식] 인터넷 네트워크 - TCP, UDP  (0) 2022.10.03
[모든 개발자를 위한 HTTP 웹 기본 지식] 인터넷 네트워크 - 인터넷 통신, IP(인터넷 프로토콜)  (0) 2022.10.03
    'HTTP' 카테고리의 다른 글
    • [모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 메서드 활용
    • [모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 메서드
    • [모든 개발자를 위한 HTTP 웹 기본 지식] HTTP 기본 - 모든 것이 HTTP, 클라이언트 서버 구조
    • [모든 개발자를 위한 HTTP 웹 기본 지식]URI와 웹 브라우저 요청 흐름 - URI, 웹 브라우저의 요청 흐름
    kkkkkkkkkkkk
    kkkkkkkkkkkk

    티스토리툴바