[Network] HTTP 프로토콜 분석

2024. 11. 10. 22:11· network
목차
  1. HTTP 프로토콜이란
  2. 프로토콜 구조
  3. Request
  4. Response
  5. URL 구조

HTTP 프로토콜이란

웹에서 이루어지는 통신에 사용되는 네트워크 프로토콜. TCP기반 소켓을 기반으로 구현된다.

 

프로토콜 구조

HTTP 프로토콜에서 통신은 클라이언트 측이 요청(Request)을 보내면 서버가 그에 대한 응답(Response)을 보내 통신하는 방식을 사용한다. 요청과 응답은 CRLF(\r\n)를 사용해 개행을 구분한다.

Request

Request의 구조는 Startline, Header, Body로 나뉘어져 있다.

  • Start line
    • ex.) GET / HTTP/1.1
    • 메서드, 경로, HTTP 프로토콜 버전이 포함된다.
  • Header 
    • Connection, Accept, Date등의 추가 정보가 포함되어 있다.
  • Body: POST 메서드를 사용할 때 추가 정보를 담을 수 있다.
GET / HTTP/1.1
Accept: text/plain
Connection: close

Request Method

Request를 보낼 때 start line에서 Method를 사용해 요청을 보낸다. 종류는 다음과 같이 있지만, 주로 쓰이는 것은 GET과 POST이다.

  • GET: 리소스를 요청하는 기본적인 메서드. 리소스를 URL에서 query형태로 요청하므로 Body가 필요하지 않다.
  • POST: 리소스를 요청하는 메서드. GET과 달리 URL에 표현하지 않고, Body에서 리소스를 요청한다.

Request Header

  • Accept: 원하는 타입의 데이터의 우선순위
    • ex.) text/html, text/plain, image/jpeg, ...
    • ex.) text/*, */* 
  • Connection: 연결 유지(keep-alive)에 대한 옵션
  • Date: 요청을 생성한 시간

Response

  • Status line
    • HTTP 프로토콜 버전, 상태 코드, 상태 메세지가 포함된다.
  • Header
    • Content type, content length 등, 응답에 대한 추가 정보가 포함되어 있다. 
  • Body
    • 요청에 대한 응답의 컨텐츠 데이터가 들어간다.
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 13

Hello, World!

Response Header

  • Content-Type: 응답 데이터에 대한 데이터 타입
  • Content-Length: 응답 데이터에 대한 길이
  • Date: 응답을 생성한 시간

URL 구조

URL의 구조는 기본적으로 다음과 같이 프로토콜, 호스트, 포트, 경로로 이루어져 있다.

${프로토콜(https, https)}://${호스트}:${포트(기본80)}/${경로}

브라우저에서 경로를 지정해 입력해보면 GET이나 POST를 사용해 Request를 지정된 서버로 송신하게 된다.

GET 같은 경우 경로에 ?변수=값 과 같은 형태로 query를 추가하는 것도 가능하다.

저작자표시 (새창열림)

'network' 카테고리의 다른 글

[Network] 차세대 IO 모델  (0) 2024.09.11
[Network] 02. IOCP 실습해보기  (1) 2023.11.03
[Network] 01. IOCP란 무엇일까?  (2) 2023.10.30
  1. HTTP 프로토콜이란
  2. 프로토콜 구조
  3. Request
  4. Response
  5. URL 구조
'network' 카테고리의 다른 글
  • [Network] 차세대 IO 모델
  • [Network] 02. IOCP 실습해보기
  • [Network] 01. IOCP란 무엇일까?
index1207
index1207
게임 서버 개발자 지망생의 공부 기록 작은것도 꼼꼼히
index1207
Index's Tistory
index1207
전체
오늘
어제
  • 분류 전체보기 (18)
    • C++ (7)
      • 트러블슈팅 (2)
      • C++ HIGH PERFORMANCES (1)
    • network (4)
    • 잡다지식 (2)
    • 번역 (1)
    • C# (1)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • IOCP
  • manifest
  • C/C++
  • HTTP
  • Conan
  • Network
  • GIT
  • Rio
  • rust
  • C++
  • 트러블슈팅
  • memory
  • CPP
  • RPC
  • io-uring
  • vcpkg
  • Server
  • asynchronous
  • thread
  • WinAPI

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
index1207
[Network] HTTP 프로토콜 분석
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.