Computer Science/Network

[Network] HTTP(HyperText Transfer Protocol)

검은 까마귀 2023. 9. 12. 12:26

 

 

우리가 항상

인터넷 URL을 입력할때 앞에 보이는

https://www.naver.com  

 

네이버

네이버 메인에서 다양한 정보와 유용한 컨텐츠를 만나 보세요

www.naver.com

 

여기서 http / https는 무엇일까?

 

 

HyperText Transfer Protocol의 약자로써

단어를 한번 뜯어보도록하자

 

HyperText란?

텍스트 문서에서 하이퍼링크를 통해 다른 문서 또는 정보와 연결할 수 있는 형식

 

태초의 인터넷은 지금의 기술 발전과 다르게 백과사전을 대체하기 위함이지 않을까요?

정보와 정보를 연결하고 빠르게 정보를 탐색할 수 있도록 하기 위해서!!

우리가 예를 들어서 "동물"을 백과사전에서 검색을 했다면

생물학적인 의미:
다다른 생명체 국가(Animalia)에 속하는 다양한 유기체 중 하나로, 세포로 이루어져 있으며 다음과 같은 특징을 가집니다.

다다른 세포 구조: 다다른 동물 종류는 다양한 세포 구조를 가지고 있으며, 다양한 조직과 기관을 형성합니다.

다다른 모습과 크기: 동물은 크기와 형태 면에서 다양하며, 무척력 동물부터 큰 포유류까지 다양한 종이 있습니다.다양한 영양 고려: 동물은 다양한 방식으로 영양을 흡수하며, 포식자, 초식자, 잡식자 등 다양한 영양 전략을 사용합니다.

민감한 동작: 동물은 자발적인 운동, 자발적인 반응, 감각 기관 등을 통해 환경에 대한 민감한 동작을 합니다.

 

제가 8살짜리 초등학생이라고 생각했을때

유기체, 세포구조, 무척력 동물, 포유류

모르는 단어들이 나왔을때 

백과사전을 ㄱㄴㄷㄹ 순으로 다시 찾아봐야하는데

을마나 귀찮은지.... 빠르게 발전하는 세계속에서 백과사전만 찾다 죽겠네요

 

바로 이것들을 해결하기 위해

HyperText가 탄생했다고 합니다.

 

그렇다면 한글로 번역했을때

HyperText  전송 프로토콜이라는 의미를 가지게 됩니다.

 

프로토콜은 모두가 알고 있듯이 통신을 위한

모종의 규칙을 이야기합니다.

 

https://www.instiz.net/pt/3381317

이렇게 인사를 하는거죠

아이고~ 박사장~ 아이고 김시장~

반갑구만 반가워요~

 

그렇다면 HyperText Transfer Protocol는 어떤 규칙을 갖고 있는지 살펴보겠습니다.

 

HTTP는 웹 브라우저와 웹 서버간에 정보를 주고 받게됩니다.

그렇기 때문에 

 

서버와 클라이언트 구조를 갖고 있습니다.

즉, 응답과 요청의 구조를 갖고있게 되겠죠

 

클라이언트측은 서버에게 정보를 달라고 합니다(요청)

서버는 클라이언트에게 정보를 줍니다(응답)

 

 

무지성 요청은 컴퓨터도 싫어하기때문에 요청 하는 방법(Method)을 정해뒀습니다

GET, POST, PUT, DELETE등 과같은 Method를 정해두었고

이러한 메소드와 함께 웹 서버의 도메인주소, 포트번호, PATH의 경로를 포함하게됩니다.

(Method에 대해서는 RESTAPI할때 차차 알아가보도록 하겠습니다 ~~)

 

내가 항상 정상적인 요청만 한다는 보장은 없습니다

혹은

서버가 로직을 처리를 100%해낸다는 보장도 없습니다.

보장을 할수가 없는거죠!!

 

그럴때 HTTP 응답 상태 코드를 통해서 성공인지, 실패인지를 나타내고

실패를 한다면 왜 실패했는지 알수 있는 응답을 보내게 됩니다.

 

 

상태코드는 공식 사이트를 참조해보겠습니다.

https://datatracker.ietf.org/doc/html/rfc7231#section-6

 

RFC 7231: Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content

The Hypertext Transfer Protocol (HTTP) is a stateless \%application- level protocol for distributed, collaborative, hypertext information systems. This document defines the semantics of HTTP/1.1 messages, as expressed by request methods, request header fie

datatracker.ietf.org

 

공식 문서 상태코드 관련 해석본입니다

  • 200 OK: 요청이 성공적으로 처리되었으며 응답에 필요한 데이터가 포함되어 있습니다.
  • 201 Created: 요청에 따라 새로운 리소스가 생성되었으며, 응답에는 새로 생성된 리소스의 정보가 포함되어 있습니다.
  • 204 No Content: 요청은 성공적으로 처리되었으나 응답에 컨텐츠가 없음을 나타냅니다.
  • 400 Bad Request: 클라이언트 요청에 오류가 있거나 요청이 잘못된 형식으로 구성되었습니다.
  • 401 Unauthorized: 클라이언트가 인증되지 않았거나 인증 정보가 잘못되었습니다.
  • 403 Forbidden: 클라이언트가 요청한 리소스에 대한 액세스 권한이 없습니다.
  • 404 Not Found: 요청한 리소스를 찾을 수 없습니다.
  • 500 Internal Server Error: 서버에서 요청을 처리하는 동안 내부 오류가 발생했습니다 

 

RESTAPI나 FE개발을 할때 자주 만나볼 수 있는 상태코드입니다.

 

 

 

 

오늘은 HTTP에 대해서 대략적으로 알아보았는데

어떤 연결방식을 사용하는지?

현재 최신버전은 어디까지 나왔는지?

HTTP vs HTTPS가 어떤점이 다른지?

기술발전을 어디로 향하는지?

차차 알아보도록 하겠습니다

 

반응형