HTTP 완벽 가이드 - HTTP 웹의 기초
목차
시작하며
다람쥐가 표지를 차지한 ‘HTTP 완벽 가이드’ 책을 샀다.
이 다람쥐를 믿고 웹에 대한 전반적인 지식을 습득하고자 한다.
결국 나는 웹 기반 개발에 관심을 가지는 것이기에,
그 생태계를 파악하고 이해하는 과정에
Http에 대한 이해없이는 불가능할 것 같다고 느꼈다.
HTTP 란
http는 현대 인터넷의 공용어 이다.
- 모든 브라우저, 서버, 어플리케이션이 http 통신으로 대화하기 때문
개발자에게 이로운 http
- http 통신은 전송중 파괴, 중복, 왜곡에 대한 걱정을 없애준다.
http 통신의 대표적인 예
- http 통신은 클라이언트와 서버의 요청/응답 통신의 형태로 이루어진다.
우리가 실생활에서 크롬을 켜서 네이버를 들어가면 네이버의 서버가 화면을 우리의 브라우저에 뿌려주는것, 이때 화면으로 쓰이는 자원들을 리소스 라고 한다.
💻(client) <——-> 🛢️(server)
리소스란?
- 리소스는 웹 콘텐츠의 그 자체이다.
웹 서버는 사용자의 요청에 따라 필요한 리소스를 클라이언트로 응답한다.
- 정적파일
|– 텍스트 파일
|– HTML 파일
|– 워드 파일
|– 이미지 파일 …
- 동적 콘텐츠
|– 사용자의 요청에 따른 콘텐츠 생성
미디어 타입
http는 웹에서 전송되는 각각의 객체에
MIME
타입데이터 포맷 라벨
을 붙인다.MIME
- 클라이언트 는 서버로부터 전송객체를(응답) 돌려받을 떄,
MIME
타입을 통해
다룰수 있는 객체인지 확인한다. - 본래 전자메일 시스템 사이에서 오가는 메시지의 문제점을 해결하기 위해 등장했다.
1 2 3 4 5 6 7 8 9 10 11 12
// MIME 타입의 예시 // Header { Content-Type : image/jpeg Content-Length : 12984 } { Content-Type : application/json Content-Type : 120 }
- 클라이언트 는 서버로부터 전송객체를(응답) 돌려받을 떄,
URI
- 클라이언트가 특정 리소스를 지목하기 위해 고안된 요청 방식
- 통합 자원 식별자 (uniform resource identifier) : URI
- URI 는 우편주소와 같다. 리소스 주소를 고유하게 식별 할 수 있다.
URL
- 리소스 식별자의 가장 흔한 형태로, 현재 채택되어 사용되는 방식이다.
- 특정 서버안의 리소스에 대한 구체적인 주소(위치)를 명세한다.
URL 은 세개의 부분으로 나누어진 포맷을 따른다.
- Scheme : 프로토콜을 서술 (http://)
- 서버의 인터넷 주소 : www.naver.com
웹서버 내 리소스 주소 : /webtoon/가나다라
- http://www.naver.com/webtoon/가나다라
Protocol | Web Server Location | Resource Location
- http://www.naver.com/webtoon/가나다라
Method
- http 요청시 사용되는 명령의 범주
- 모든 http 요청 메세지는
한 개의 Method
를 갖는다.
Method | 설명 | |
---|---|---|
GET | 지정한 리소스를 보내줘! | |
PUT | 지금 보내는 데이터를 지정한 이름의 리소스로 저장해라~ | |
DELETE | 지금 말한 리소스를 서버에서 삭제해! | |
POST | 클라이언트 데이터를 서버 게이트웨이 어플리케이션으로 보내라 | |
HEAD | 지정한 리소스에 대한 응답에서 http 헤더만 보내 |
상태 코드 (Status)
- 200 : 정상
- 302 : 다시보내라, 다른곳에서 리소스를 가져와바
- 404 : 리소스를 찾을 수 없어
요청/응답 메세지
- 메세지는 시작줄 / 헤더 / 본문으로 구성되어있다.
- 시작줄 : 어떤 요청인지, 어떤 응답인지 기술되어있다.
- 헤더 : 요청 및 응답 결과에 대한 형식정의 가 되어있다.
- 본문 : 문자열, 요청 및 응답으로 오는 텍스트 메세지
웹의 구성요소
Proxy (프록시)
- 클라이언트와 서버 사이에 위치한
HTTP 중개자
- 클라이언트의 모든 요청을 받아 서버에 전달
- 사용자 대신 서버에 접근
캐시 (Cache)
- 클라이언트 측 HTTP 창고
- 자주 찾는 것의 사본을 저장해두는 임시 창고
게이트웨이 (Gateway)
- 다른 어플리케이션과 연결된 특별한 웹 서버
- HTTP 트랙픽을 다른 프로토콜로 변환 하기위해 사용
터널
- 단순히 HTTP 통신을 전달하기만 하는 특별한 Proxy
- Raw 데이터를 열어보지 않고 원본 그대로 전달해주는 HTTP 어플리케이션
에이전트 (Agent)
- 자동화된 HTTP 요청을 만드는 준지능적 웹 클라이언트
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.