HTTP란 무엇인가?

2023. 11. 24. 14:19· Theory
목차
  1. HTTP란 무엇인가?
  2. HTTP의 동작 방식
  3. 클라이언트 요청
  4. 서버응답
  5. 연결 해제
  6. HTTP의 특징
  7. 요청(Request)
  8. 요청의 종류
  9. 응답(Response)
  10. 응답의 구조
반응형

HTTP란 무엇인가?

웹 브라우저 열고 인터넷에 정보를 검색하면, 주로 http:// 또는 https://로 시작하는 웹 주소를 볼 수 있다.

웹 서버와 브라우저 간에 데이터를 전송하는 데 사용되는 특별한 프로토콜인 HTTP은, 텍스트 기반 통신 규약으로 인터넷에서 주고받을 수 있는 프로토콜이다. 

 

클라이언트가 서버에 요청을 보내면, 서버는 요청된 정보를 제공하거나 작업을 수행한 후 응답을 보냅니다. 이러한 요청과 응답은 텍스트 기반으로 이루어져 있어 인간이 이해하기 쉽고, 컴퓨터 간에도 효율적으로 데이터를 교환할 수 있다. 또한, 이러한 규약을 정해두었기 때문에 모든 프로그램이 이 규약에 맞춰서 개발함으로써 서로 정보를 교환할 수 있게 되었다.

 

 

HTTP의 동작 방식

사용자가 브라우저를 통해서 어떤 서비스를 이용하려고 할때, url이나 다른 어떤 방법을 이용하여 요청을 보내면, 서버에서 이 요청에 맞는 결과를 찾아서 사용자에게 응답하는 형태로 동작한다.

 

클라이언트 요청

사용자가 웹 브라우저를 통해 웹페이지를 요청한다. 이때 클라이언트는 서버에게 요청 메시지를 보낸다.

 

서버응답

서버는 클라이언트의 요청을 받고, 요청된 웹 페이지나 파일등을 포함한 응답 메시지를 생성하여 클라이언트에게 전송한다.

 

연결 해제

클라이언트가 응답을 받은후, 연결이 해제된다. HTTP는 기본적으로 연결 상태를 유지하지 않는 프로토콜이기 때문에 각각의 요청은 독립적으로 처리된다.

 

 

HTTP의 특징

  • HTTP 메시지는 HTTP서버와 HTTP클라이언트에 의해서 해석이 된다.
  • TCP/IP를 이용하는 응용 프로토콜이다.
  • HTTP는 연결 상태를 유지하지 않는 비 연결성 프로토콜이다.
  • HTTP는 연결을 유지하지 않는 프로토콜이기 때문에 요청 응답 방식으로 작동한다.

1. 무상태성

각각의 요청은 독립적으로 처리되며, 이전 요청에 대한 정보를 유지하지 않는다. 이는 서버에 부담을 덜어주고, 빠른 응답이 가능하게 한다.

 

2. 단순함과 확장성

텍스트 기반이기 때문에 간단하고, 쉽게 읽고 이해할 수 있다. 또한, 다양한 환경과 상황에서 사용될 수 있도록 설계되었다.

 

3. 요청/응답 모델

클라이언트가 요청을 보내면, 서버는 응답을 반환하는 간단한 모델을 사용한다. 이를 통해 웹 페이지의 빠른 로딩과 데이터 전송이 가능하다.

 

4. 확장 가능한 프로토콜

HTTP는 계속 발전하고 있으며, HTTP/1.1, HTTP/2, HTTP/3과 같은 새로운 버전이 나와 기능과 성능을 향상 시키고 있다.

 

 

요청(Request)

HTTP요청은 클라이언트가 웹 서버에게 특정 동작을 수행하도록 요청하는 방법을 나타낸다.

 

요청의 종류

GET

웹 서버로부터 정보를 요청할 때 사용된다.

주로 웹 페이지나 이미지, 스크립트와 같은 정적인 컨텐츠를 가지고 오기 위해서 사용된다. GET요청은 URL에 매개변수를 붙여 데이터를 전송한다.

 

POST

서버로 데이터를 제출할 때 사용된다. 

주로 사용자가 폼을 제출할 때, 사용자가 입력한 데이터를 서버로 보낼 때 POST 요청을 사용한다. POST요청은 HTTP 요청 본문(body)에 데이터를 담아 전송한다.

 

PUT

서버에게 새로운 리소스를 생성하거나 기존의 리소스를 업데이트할 때 사용된다.

 

DELETE

서버의 특정 리소스를 삭제할 때 사용된다.

 

PATCH

리소스의 일부를 수정할 때 사용된다. 

 

PATCH는 리소스의 일부만 수정하고, PUT의 경우 리소스 전체를 업데이트한다.

 

HEAD

GET요청과 유사하지만, 서버는 응답을 본문으로 보내지 않고 응답 헤더만 보낸다.

주로 리소스가 변경되었는지 여부를 확인하기 위해 사용된다.

 

OPTIONS

서버가 특정 리소스에 대해 어떤 HTTP메서드가 허용되는지 요청할 때 사용된다.

서버는 허용된 메서드를 응답으로 보낸다.

 

CONNECT

목적지 서버로 네트워크 연결을 설정할 때 사용된다. 주로 프록시 서버와 터널링에 사용된다.

 

TRACE

클라이언트 요청에 서버에 도달했을 때 그 요청이 어떻게 변화되어 서버에 도달하는지 확인하기 위해 사용된다.

주로 디버깅 목적으로 사용된다.

 

 

 

응답(Response)

클라이언트가 보낸 요청에 따라 서버가 그에 맞는 답변을 클라이언트에 보내는 것이다.

 

응답의 구조

1. Status Code (상태코드)

2. Response Header (응답 헤더)

3. Response Body (응답 본문)

 

상태코드

서버의 응답 상태를 나타내는 3자리 숫자이다. 각 상태 코드는 특정한 의미를 가지고 있다.

  • 1xx (Informational) - 요청이 수신되었고 처리 중이다.
  • 2xx(Success) - 요청이 성공적으로 수행되었다.
  • 3xx (Redirection) - 요청을 완료하려면 추가적인 동작이 필요하다. 
  • 4xx (Client Errors) - 클라이언트 요청이 잘못되었거나. 서버가 요청을 이해할 수 없는 경우
  • 5xx (Server Errors) - 서버가 유효한 요청에 대한 처리를 할 수 없는 상태

 

응답 헤더

서버의 응답에 대한 여러 정보를 포함한다. - 응답의 길이, 데이터 타입, 서버 정보, 쿠기 등

 

응답 본문 

실제 응답 데이터를 포함하는 부분이다 - HTML, JSON, 이미지, 텍스트 등

 

반응형
저작자표시

'Theory' 카테고리의 다른 글

프로그램 명명 규칙 - Naming  (0) 2024.03.15
호스팅이란?  (0) 2023.11.26
웹 브라우저와 동작 원리  (1) 2023.11.21
운영체제(OS) 메모리 관리  (1) 2023.11.19
DNS 서버의 종류  (1) 2023.11.11
  1. HTTP란 무엇인가?
  2. HTTP의 동작 방식
  3. 클라이언트 요청
  4. 서버응답
  5. 연결 해제
  6. HTTP의 특징
  7. 요청(Request)
  8. 요청의 종류
  9. 응답(Response)
  10. 응답의 구조
'Theory' 카테고리의 다른 글
  • 프로그램 명명 규칙 - Naming
  • 호스팅이란?
  • 웹 브라우저와 동작 원리
  • 운영체제(OS) 메모리 관리
Jong_seoung
Jong_seoung
기록하자, 머리는 생각하는 곳이지 저장장치가 아니다.
반응형
Jong_seoung
Today_developStory
Jong_seoung
전체
오늘
어제

블로그 메뉴

  • Home
  • Git Hub
  • 분류 전체보기 (351) N
    • Theory (16)
    • Java (3)
      • 알고리즘 (2)
      • 문법 (0)
    • Spring (7)
      • 스프링 입문 (6)
      • PickTalk (0)
      • 에러처리 (1)
    • Python (80)
      • 알고리즘 - 이론 (17)
      • 알고리즘 - 내장함수, 라이브러리 등등 (3)
      • 알고리즘 - 백준 (53)
      • 나도코딩 정리 (2)
      • 기타 (5)
    • Django (159)
      • DRF (105)
      • 인프라 (46)
      • DataBases (2)
      • API Docs (6)
    • FrontEnd (22)
      • htmx (2)
      • React (8)
      • 자바스크립트 (12)
    • GIT (16)
    • 기타 (8)
      • 정리 (2)
      • Flutter (1)
      • 마이크로프로세서 - ATmega128 (2)
      • 개발환경 세팅 (3)
    • 자격증 (37)
      • 정보처리기사 (19)
      • SQLD자격증 (18)

인기 글

최근 글

태그

  • alarm
  • BFS
  • CSRF
  • Django
  • django channels
  • django sse
  • django tutorial
  • django 배포
  • django 스웨거 적용
  • Django 이미지 저장

최근 댓글

hELLO · Designed By 정상우.v4.3.0
Jong_seoung
HTTP란 무엇인가?
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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