HTTP 완벽 가이드 1-1. HTTP 개관
📘 HTTP 완벽 가이드 읽고 정리하기 🐿︎
HTTP
-
HTTP : HyperText Transfer Protocol
-
HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜
-
웹에서 이루어지는 모든 데이터 교환의 기초
-
전 세계의 웹 서버로부터 대량의 정보를 빠르고, 간편하고, 정확하게 웹 브라우저로 전달
-
신뢰성 있는 데이터 전송 프로토콜 사용 -> 데이터 전송 중 손상되거나 꼬이지 않음을 보장
웹 클라이언트 / 서버
-
웹 서버
-
웹 콘텐츠 존재, 웹 리소스를 관리하고 제공
-
HTTP 프로토콜로 의사소통 -> HTTP 서버라고 부름
-
인터넷의 데이터 저장, HTTP 클라이언트가 요청한 데이터 제공
-
-
클라이언트 : 서버에 HTTP 요청 > 서버 : 요청된 데이터 HTTP로 응답
리소스
-
HTTP 요청 대상을 리소스라고 부름
-
웹 리소스 = 웹 콘텐츠의 원천
-
정적 콘텐츠 : 텍스트 파일, HTML 파일, JPEG 이미지 파일, AVI 동영상 파일, …
-
동적 콘텐츠 : 요청에 따라 콘텐츠를 생성
-
-
웹페이지는 리소스의 모음
MIME
-
미디어 타입 = MIME 타입 (Multipurpose Internet Mail Extensions (다목적 인터넷 메일 확장))
-
각기 다른 전자메일 시스템 사이에서 메시지가 오갈 때 겪는 문제점을 해결하기 위해 설계되었지만, HTTP에서 멀티미디어 콘텐츠를 기술하고 라벨을 붙이기 위해 채택됨
-
웹 서버는 모든 HTTP 객체 데이터에 MIME 타입을 붙임 -> 웹브라우저는 서버로부터 객체를 돌려받을 때 MIME 타입을 통해 다룰 수 있는 객체인지 확인
-
‘주 타입 / 부 타입’ 형태로 이루어진 문자열 라벨 (ex) text/html, image/jpeg, …)
URI / URL / URN
-
URI
-
Uniform Resource Identifier, 통합 자원 식별자
-
정보 리소스를 고유하게 식별하고 위치를 지정할 수 있음 (인터넷에 있는 자원을 나타내는 유일한 주소)
-
URI의 하위 개념으로 URL, URN 존재
-
-
URL
-
Uniform Resource Locator, 통합 자원 지시자
-
특정 서버의 한 리소스에 대한 정확한 위치와 접근 방법을 나타냄
-
대부분의 URL은 세 부분으로 이루어진 표준 포맷을 따름
-
- 스킴(scheme), 리소스에 접근하기 위해 사용되는 프로토콜, 보통 HTTP 프로토콜 (http://)
-
- 서버의 인터넷 주소 (www.***.com)
-
- 웹 서버의 리소스
-
-
-
URN
-
Uniform Resource Name, 유니폼 리소스 이름
-
인터넷에 존재하는 각종 정보들의 유일한 이름을 표시하는 식별자
-
트랜잭션
- 트랜잭션 = 요청 명령 메시지 + 응답 결과 메시지
HTTP 메서드
-
HTTP 요청 메시지는 한 개의 메서드를 가짐
-
메서드는 서버에게 어떤 동작을 해야하는지 알려줌
-
-
GET : 서버에서 클라이언트로 지정한 리소스 요청, 데이터를 받기만 함
-
PUT : 클라이언트에서 서버로 보낸 데이터 지정한 이름의 리소스로 저장 요청
-
DELETE : 지정한 리소스 서버에서 삭제 요청
-
POST : 클라이언트 데이터를 서버 게이트웨이 애플리케이션으로 전송 요청
-
HEAD : 지정한 리소스에 대한 응답에서 HTTP 헤더 부분만 요청, 응답 본문을 포함하지 않음
-
HTTP 요청/응답 메시지
-
-
웹 클라이언트 -> 웹 서버 : 요청 메시지
-
웹 서버 -> 웹 클라이언트 : 응답 메시지
-
-
시작줄, 헤더, 본문 세 부분으로 구성
-
시작줄 : 실행되어야 할 요청 또는 요청 수행에 대한 성공, 실패
-
헤더
-
요청에 대한 설명 또는 메시지 본문에 대한 설명
-
요청에 대한 모든 메타 정보가 전송되었음을 알려주는 빈 줄 삽입
-
본문의 존재 유무 및 크기 명시
-
-
본문
-
요청의 본문은 웹 서버로 데이터를 전송, 응답의 본문은 클라이언트로 데이터 반환
-
시작줄과 헤더는 문자열로만 구성, 본문은 이진 데이터(이미지, 비디오, 응용 소프트웨어 등) 포함 가능
-
-
TCP/IP
-
TCP : Transmission Control Protocol, 전송 제어 프로토콜
-
오류 없는 데이터 전송
-
순서에 맞는 전달 (보낸 순서대로 데이터 도착)
-
조각나지 않는 데이터 스트림 (어떤 크기로든 전송 가능)
-
-
TCP/IP는 TCP와 IP가 층을 이루는 패킷 교환 네트워크 프로토콜의 집합
-
TCP 커넥션이 맺어지면 클라이언트와 서버 컴퓨터 간에 교환되는 메시지가 없어지거나 손상되는 등의 일은 없음
-
물리계층 - 데이터링크계층 - 네트워크계층(IP) - 전송계층(TCP) - 애플리케이션계층(HTTP)
-
OSI 7계층 vs TCP/IP 계층
-
IP : Internet Protocol, 인터넷 프로토콜
- HTTP 메시지 전송 전 IP 주소와 포트번호를 사용해 클라이언트와 서버 사이에 TCP/IP 커넥션을 맺어야 함