Frontend

What is HTTP?

단점이없어지고싶은개발자 2023. 9. 4. 18:41
반응형

HTTP(Hypertext transfer protocol)는 World Wide Web의 기초이며, 하이퍼테스트 링크를 사용하여 웹페이지를 로드하는데 사용된다. 

 

 

HTTP란?

  클라이언트와 서버가 서로 통시하는 방식을 표준화하는 TCP/IP 기반 어플리케이션 계층 통신 프로토콜이다. 인터넷을 통해 콘텐츠가 요청되고 전송되는 방식을 정의한다. 클라이언트 및 서버가 통신하는 방식을 표준화하는 추상화 계층임을 뜻한다.  기본적으로 TCP포트 80이 사용되지만 다른 포트도 사용할 수 있다. 하지만 HTTPS는 포트 443을 사용한다.

 

 

HTTP의 역사

HTTP/0.9 - The One Liner(1991)


- 역대 가장 간단한 프로토콜이다.
- GET이라는 단일 메서드가 있었고, 클라이언트가 서버의 요청을 보냈다.

 

즉, 서버는 요청을 받고 응답으로 HTML로 응답하고 콘텐츠가 전송되자마자 연결이 닫혔다.

 

특징으로는 

  • headers 가 없다.
  • 'GET' method만 존재했다.
  • 응답은 HTML이어야 했다.

 

 

HTTP/1.0 - 1996

 

  응답 형식이 다양해졌다. (예: 이미지, 비디오파일, 일반 텍스트 또는 기타 콘텐츠 유형) 또한, 더 많은 메소드(POST 및 HEAD)를 추가하고 요청/응답 형식이 변경되었다. 응답에 대해 식별하기 위해 상태 코드가 추가되고, 인증, 캐싱, 콘텐츠 인코딩 등이 포함되었다.

  단점으로는 아직도 전송되자마자 닫히는 문제가 여전히 존재했다. 만약 다양한 유형들의 파일에 대한 요청/응답을 받으려면 그 수 만큼 연결과 닫힘이 반복되어야 됐었다.

 

HTTP/1.1 - 1997

 

  • PUT, PATCH, OPTIONS, DELETE 메소드 추가
  • 호스트 헤더에 대한 값이 필수로 정해짐
  • connection에 대한 지속이 가능해졌다. 열린 상태로 유지되어, 순차적 요청을 허용했다. 만약 연결을 닫으려면 Conenection: close 헤더를 통해 닫을 수 있다. 일반적으로 연결을 안전하게 종료하기 위해 마지막 요청에서 이 헤더를 보냈다.

 

HTTP/2 - 2015

 

  대기 시간이 짧은 콘텐츠 전송을 위해 설계되었다. 

  • Text 대신 Binary
  • 단일 연결을 통한 다중 비동기 HTTP요청
  • HPACK를 사용한 헤더 압축
  • 단일 요청에 대한 다중 응답
  • 요청 우선순위
  • 보안

 

HTTP 요청

 

  HTTP요청은 웹 브라우저와 같은 인터넷 통신 플랫폼이 웹 사이트를 로드하는데 필요한 정보를 요청하는 방식이다. 

 

  • HTTP 버전 유형
  • URL
  • 메소드
    • GET, POST, PUT, DELETE
  • 선택적 본문
  • 요청 헤더
    • 키-값이 쌍으로 저장된 텍스트 정보가 포함되어 있다.

 

헤더 예시

 

 

 

 

HTTP 응답

 

  • HTTP 상태 코드
    • 1xx : 정보 관련
    • 2xx : 성공
    • 3xx : 리다이렉션
    • 4xx : 클라이언트 오류
    • 5xx : 서버 오류
  • HTTP 응답 헤더
    • HTTP 요청 헤더와 마찬가지로, 응답에 전송되는 데이터의 언어 및 형식과 같은 중요한 정보를 전달하는 헤더가 함께 제공
  • 선택적 본문
반응형

 


참조 사이트

반응형

'Frontend' 카테고리의 다른 글

What is DNS?  (0) 2023.09.08
What is DomainName?  (0) 2023.09.08
Recoil에 대해(핵심 요약)  (0) 2023.09.03
Context API에 대해  (0) 2023.09.03
MobX 라이브러리에 대해  (0) 2023.09.03