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 |