01. HTTP 개관
목표 : HTTP를 빠르게 훑어본다
1. HTTP:인터넷의 멀티미디어 배달부
HTTP는 신뢰성있는 데이터 전송 프로토콜을 사용하기 때문에, 데이터가 손상되지 않는다.
개발자는 인터넷의 결함, 약점 걱정없이 애플리케이션 고유의 기능을 구현하는데 집중이 가능
02. 웹 클라이언트와 서버
클라이언트는 서버에게 HTTP 요청을 URL로 보내고 (index.html 주세요)
서버는 요청된 데이터를 HTTP 응답(타입과 길이등의 정보)으로 돌려준다.
(HTTP 포맷이고 길이는 3.150글자임)
03. 리소스
리소스란?
웹 서버는 웹 리소스를 관리하고 제공
웹 리소스는 웹 콘텐츠의 원천
가장 단순한 웹 리소스는 웹 서버 파일 시스템의 정적파일이다.
텍스트,html,워드,jpeg 이미지 등등
그러나 정적일 필요는 없고, 요청에 따라 다른 컨텐츠를 생성하는 동적 리소스도 있다
어떤 종류의 컨텐츠 소스도 리소스가 될 수 있다
웹 게이트 웨이, 인터넷 검색엔진 등
1) 미디어 타입
웹서버는 모든 HTTP객체 데이터에 MIME 타입을 붙인다.
MIME (Multipurpose Internet Mail Extensions) 발음을 어떻게 하나?
: 이메일과 함께 동봉할 파일을 텍스트 문자로 전환해서
이메일시스템을 통해 전달하려고 개발되었지만
현재는 웹을 통해서 여러형태의 파일을 전달하는데 쓰이고 있다 (검색한 내용)
웹브라우저는 서버로부터 객체를 돌려 받을 때 다를 수 있는 객체인지 MIME 타입을 통해 확인
사선(/)으로 구분된 주타입,부타입으로 이루어진 문자열들
ex)
Content-type : image/jpeg
text/htem, text/gif 등등
2) URI (uniform resource identifier) : 통합자원 식별자
클라이언트는 리소스를 지목 할 수 있다
서버 리소스 이름은 URI라고 한다
URL과 URN은 URI의 종류
3) URL (uniform resource identifier) : 통합 자원 지시자
http://www.abc.com/aaa/index.gif
프로토콜 : http://
서버의 인터넷 주소 : www.abc.com
웹 서버의 리소스 : aaa/index.gif
오늘날 대부분의 URI는 URL이다.
4) URN (uniform resource identifier) : 통합 자원 이름
위치에 영향을 받지 않는 유일무이한 이름 역할
리소스가 그 이름을 변하지 않게 유지하는 한 URL은 리소스를 옮기더라고 문제 없이 작동
여전히 실험중이고 아직 채택되지 않았지만 전망은 밝다
04. 트랜잭션
HTTP 트랜잭션은 요청과 응답 메시지로 구성되어 있다
모든 HTTP 요청 메시지는 한개의 메서드를 갖는다
메서드 : 어떤 동작이 취해져아 하는지 알려줌
get, post, put, delete, head (3장에서 자세히 다룸)
모든 HTTP응답 메시지는 상태 코드와 함께 반환된다.
상태코드 : 요청이 성공인지 실패인지 아니면 다른 조치가 필요한지 알려주는 세자리 숫자
200, 302, 404 등 (3장에서 자세히 다룸)
웹페이지는 여러 객체로 이루어 질 수 있다
하나의 작업을 수행하기 위해 여러 HTTP 트랜잭션을 수행
웹페이지는 보통 하나의 리소스가 아닌 리소스의 모음이다
05. 메시지
요청메시지와 응답메시지, (다른 종류의 HTTP 메시지는 없다.)
참고 : 그림1.7 (12p)
시작줄 : 요청은 무엇을 해야하는지, 응답은 무슨일이 일어났는지 나타냄
헤더 : 0개 이상으 헤더 필드가 이어지고, key:value 로 구성
본문
요청은 웹 서버로 데이터를 실어 보내고, 응답은 클라이언트로 데이터를 반환
시작줄,헤더와 다르게 임의의 이진 데이터를 포함할 수 있다 (이미지,비디오 등)
06. TCP 커넥션
1) TCP/IP
TCP (Transmission Control Protocol, 전송 제어 프로토콜)
HTTP는 네트워크 통신의 핵심적인 세부사항에 대해 신경쓰지 않고 TCP/IP에게 맡긴다.
TCP/IP : 인터넷 전송 프로토콜, TCP,IP가 층을 이루는 패킷교환 프로토콜
일단 TCP 커넥션이 맺어지면, 메시지가 잘못 수신되는 일은 결코 없다.
2) 접속,IP주소, 포트번호
HTTP 클라이언트가 서버에 메시지를 전송할 수 있게 되기 전에, 클라이언트와 서버 사이에 TCP/IP 커넥션을 맺어야 한다.
웹브라우저가 어떻게 HTTP를 이용해서 서버의 HTML 리소스를 보여주는지 순서
웹브라우저는 서버의 URL에서 호스트 명을 추출
웹브라우저는 서버의 호스트명을 IP로 변환 (DNS서버)
웹브라우저는 URL에서 포트번호(있으면)를 추출 (없으면 기본값 80으로 생각)
웹브라우저는 웹 서버와 TCP 커넥션을 맺는다.
웹브라우저는 서버에 HTTP 요청을 보낸다.
서버는 브라우저에 HTTP 응답을 돌려준다.
커넥션이 닫히면, 웹브라우저는 문서를 보여준다.
3) 텔넷
텔넷이란? (검색)
인터넷을 통하여 원격지의 호스트 컴퓨터에 접속할 때에 지원되는 인터넷 표준 프로토콜.
TCP/IP 기반의 프로토콜
원격 터미널 접속서비스
TCP 23번 포트 (PC기본적으로)->규약이다.
보안성을 위해 사용자가 포트변경 가능하다
책 예제 연결안됨 (16p)
7. 프로토콜 버전
HTTP/1.1 이 현재의 HTTP버전
HTTP/2.0은 설계중
8. 웹의 구성요소
프락시 (6장에서 자세히)
클라이언트와 서버사이에 위치한 HTTP 중개자
클라이언트의 모든 HTTP 요청을 받아 서버에 전달
사용자를 대신해서 서버에 접근
주로 보안을 위해 사용되며, 요청과 응답을 필터링 한다. ex) 바이러스 검출, 성인 컨텐츠 차단
캐시 (7장에서 자세히)
많이 찾는 웹페이지를 클라이언트 가까이에 보관하는 HTTP창고
자주 찾는 것의 사본을 저장
웹서버보다 근처의 캐시에서 훨씬 더 빨리 문서를 다운 받을 수 있다
게이트웨이 (8장에서 자세히)
다른 애플리케이션과 연결된 특별한 웹서버
주로 HTTP트래픽을 다른 프로토콜로 변환하기 위해 사용
스스로가 리소스를 갖고 있는 진짜 서버인것처럼 요청을 다룬다.
터널
단순히 HTTP통신을 전달하기만 하는 특별한 프락시
두 커넥션 사이에서 날(raw) 데이터를 열어보지 않고 그대로 전달해주는 HTTP애플리케이션
그대로 전송해주기 위해 사용 ` 대표적인 예가 이해 안감 21p
에이전트 (9장에서 자세히)
자동화된 HTTP요청을 만드는 준지능적(semi-intelligent) 웹 클라이언트*는
사용자를 위해 HTTP 요청을 만들어주는 클라이언트 프로그램 `이해안가지만 9장에서 자세히
9. 시작의 끝
10. 추가정보
'책 > HTTP 완벽가이드 (2020)' 카테고리의 다른 글
02. URL과 리소스 (0) | 2020.09.27 |
---|