다양한 개발 지식

[NETWORK] HTTP 개관

pearl.k 2023. 7. 12. 14:46

아래 내용은 HTTP 완벽 가이드 (insight) 책을 읽으며 정리한 것이다.


 

1. HTTP 란?

HTTP (Hypertext Transfer Protocol) 의 약자로, 전 세계의 웹 브라우저, 서버, 웹 애플리케이션이 모두 HTTP를 통해 대화한다. HTTP는 신뢰성 있는 데이터 전송 프로토콜을 사용하기 때문에 데이터 전송 중에 손상되거나 작업이 꼬이지 않음을 보장한다.

 

2. HTTP가 웹 트래픽을 어떻게 전송하는지?

웹 콘텐츠는 웹 서버에 존재한다. 웹 서버는 인터넷의 데이터를 저장하고, HTTP 클라이언트가 요청한 데이터를 제공한다. 클라이언트는 서버에게 HTTP 요청을 보내고, 서버는 요청된 데이터를 HTTP 응답으로 돌려준다.

클라이언트와 서버

 

3. HTTP의 메서드

HTTP는 HTTP 메서드라고 불리는 여러 가지 종류의 요청 명령을 지원한다. 모든 HTTP 요청 메세지는 한 개의 메서드를 가진다. 메서드는 서버에게 어떤 동작을 해야 하는지 알려준다.

예를 들어서 웹 페이지 가져오기, 게이트웨이 프로그램 실행하기, 파일 삭제하기 등을 알려주다. 아래에는 자주 쓰이는 HTTP 메서드를 표로 정리했다.

HTTP 메서드 설명
GET 서버에서 클라이언트로 지정한 리소스를 보내기
PUT 클라이언트에서 서버로 보낸 데이터를 지정한 이름의 리소스로 저장하기
DELETE 지정한 리소스를 서버에서 삭제하기
POST 클라이언트 데이터를 서버 게이트웨이 애플리케이션으로 보내기
HEAD 지정한 리소스에 대한 응답으로, HTTP 헤더만 보내기
PATCH  

 

4. HTTP 상태 코드

모든 HTTP 응답 메세지는 상태 코드와 함께 반환된다. 상태 코드는 클라이언트에게 요청이 성공했는지 아니면 추가 조치가 필요한지 알려주는 세 자리 숫자다. 자주 쓰이는 상태 코드를 숙지하면 좋다.

  • 200 : good, 문서가 바르게 반환되었다.
  • 302 : 다시 보내야 한다, 다른 곳에 가서 리소스를 가져가야 한다.
  • 404 : 리소스를 찾을 수 없다.

 

5. 메세지

HTTP 요청과 응답 메세지의 구조를 알아야 한다. HTTP 메세지는 줄 단위의 단순한 문자열이고, 일반 텍스트 형태라서 사람이 읽고 쓰기 쉽다. 

  • 요청 메세지: 웹 클라이언트에서 웹 서버로 보낸 HTTP 메세지
  • 응답 메세지: 웹 서버에서 클라이언트로 가는 메세지

HTTP 메세지는 세 부분으로 나뉜다.

요청 메세지 구조 응답 메세지
  시작줄  
  헤더  
  본문  

 

6. TCP/IP

TCP/IP는 TCP와 IP가 층을 이루는 패킷 교환 네트워크 프로토콜의 집합이다. TCP/IP는 각 네트워크와 하드웨어의 특성을 숨기고, 어떤 종류의 컴퓨터나 네트워크든 서로 신뢰성 있는 의사소통을 하게 만든다. (오류 없는 데이터 전송, 순서에 맞는 전달, 조각나지 않는 데이터 스트림 등을 보장한다.)

from freecodecamp

 

7. 웹의 구성 요소

프록시 클라이언트와 서버 사이에 위치한 HTTP 중개자
캐시 많이 찾는 웹페이지를 클라이언트와 가까이 보관하는 HTTP 창고
게이트웨이 다른 애플리케이션과 연결된 특별한 웹 서버
터널 단순하게 HTTP 통신을 전달하기만 하는 특별한 프록시
에이전트 자동화된 HTTP 요청을 만드는 준지능적(semi-intelligent) 웹 클라이언트

 

'다양한 개발 지식' 카테고리의 다른 글

API란? : REST API와 RESTful API의 차이는?  (0) 2023.07.14