기타/HTTP 완벽가이드
[HTTP 완벽가이드] 1장 HTTP : 웹의 기초
이영애님
2020. 11. 9. 21:53
HTTP
- 전 세계 웹서버로부터 대량의 정보를 웹브라우저에 전달한다.
- '신뢰성 있는 데이터 전송 프로토콜'을 사용한다. 손상 걱정 없다.
웹어플리케이션
웹서버 (HTTP 서버)
-
HTTP 프로토콜로 소통한다.
-
웹 콘텐츠 보유/저장, client에게 제공
웹 클라이언트 (HTTP 클라이언트, 웹 브라우저)
- 서버에 HTTP 객체를 요청. 화면에 출력.
웹 리소스 (웹 콘텐츠)
- 웹 서버가 관리/제공하는 것. 각 리소스마다 고유 URI를 가지고 있음
- 정적 파일 (text, html, word, pdf , img, avi..)
- 동적 프로그램 (검색엔진, 도서 검색 게이트웨이, 웹캠 게이트웨이)
미디어 타입
- 웹 서버는 모든 HTTP 객체 데이터에 'MIME 타입' 데이터 포맷 라벨 붙여 전송한다.
- 웹 브라우저는 전달받은 객체의 MIME 타입을 확인해 작업함. ( img-보여줌, html-분석/포맷팅)
** MIME (다목적 인터넷 메일 확장)
- 본래 이메일 시스템 메시지가 오갈 때 겪는 문제점을 해결하기 위해 설계.
- 동작 결과가 우수해 HTTP 멀티미디어 콘텐츠를 기술/라벨에도 사용함. 수백 가지 존재한다.
- text/html , image/jpeg , application/vnd.ms-powerpoint
URI (통합 자원 식별자)
- 웹 서버 리소스 이름. 고유식별 및 요청을 위한 지목 목적.
- URI 은 URN , URL 두 가지 형식이 있다.
** URL (Locator) - 구체적인 위치 서술. URI의 보편적형태. http~~/index.html
** URN (Name) - 리소스에 대한 유일무이한 이름. 위치 상관없이 접근가능 ★
트랜잭션
- '요청명령 ~ 응답결과' 로 구성. HTTP 메세지를 이용해 이루어짐.
- 클라 - 요청 메세지(명령, URI) -> 서버 - 응답 메시지(트랜잭션 결과) 전달
- 리소스별 별개의 HTTP 트랜잭션을 필요로 한다.
메서드
- 서버가 어떤 동작을 해야하는지 명세한 것. HTTP 요청 메시지는 한 개의 메서드를 가짐.
상태코드
- 클라이언트가 요청결과를 이해하는 코드. HTTP 응답 메시지는 상태코드와 반환됨.
- reason phrase (사유구절)
메세지
-
요청 메세지 / 응답메세지
시작줄 - (요청) 서버가 할 일, (응답) 수행한 결과
헤더 - 이진 데이터 불가
본문 - 이진 데이터 포함 가능. (요청) 서버로 보낼 데이터. (응답) 요청한 데이터.
TCP 커넥션
- client는 URL로 서버 IP + 포트번호를 추출해 client-server간 TCP/IP 커넥션 맺는다.
- http 요청을 보내고 http 응답을 받은 후 커넥션을 닫는다.
- client는 요청한 화면을 출력한다.
** TCP/IP
- TCP/IP가 층을 이루는 패킷 교환 네트워크 프로토콜의 집합
- HTTP는 메시지 데이터 전송을 위해 TCP를 사용한다. (데이터의 삭제, 손상, 순서바뀜 우려없음)
# 프록시 서버 - client - server 사이 중개자. 트래픽 전달. 요청/응답 필터링(보안) 역할.
# 캐시 - 문서의 사본을 저장하는 http 프록시 서버.
# 게이트웨이 - 서버들의 중개자. http를 다른 트로토콜로 변환하기 위해 사용.
# 터널 - 단순 http 통신을 전달만 하는 프록시 ★
# 에이전트 - 자동화된 http 요청을 만드는 웹 클라이언트. 웹로봇. 스파이더.