1장
HTTP: 인터넷의 멀티미디어 배달부
HTTP는 신뢰성 있는 데이터 전송 프로토콜을 사용
- 데이터가 지구 반대편에서 오더라도 전송 중 소상되거나 꼬이지 않음을 보장
- 사용자는 인터넷에서 얻은 정보가 손상된 게 아닌지 염려할 필요 X
- 개발자는 인터넷 결함이나 약점에 대한 걱정 없이 고유 기능을 구현하는데 집중할 수 있다.
웹 클라이언트와 서버
웹 콘텐츠는 웹 서버에 존재
- 웹서버는 보통 HTTP 서버라고 불린다.
- 웹 서버는 인터넷의 데이터를 저장하고 HTTP 클라이언트가 요청한 데이터를 제공
- HTTP 클라이언트와 HTTP 서버는 월드 와이드 웹의 기본 요소이다.
리소스
웹 리소스는 웹 콘텐츠의 원천
웹 리소스의 종류
- 정적파일 : 텍스트, HTML, MS Word, 어도비 아크로벳, JPEG, AVI 등등
- 동적 리소스
어떠한 종류의 콘텐츠 소스도 리소스가 될 수 있다.
미디어 타입
- 수천 가지 데이터 타입을 다루기 때문에 MIME 타입이라는 데이터 포맷 라벨을 붙인다.
URI
- 정보 리소스를 고유하게 식별하고 위치를 지정할 수 있다
- URI에는 URN과 URL이 있다.
- URL : 특정 서버의 한 리소스에 대한 구체적인 위치를 서술
- URN : 한 리소스에 대해, 그 리소스의 위치에 영향 받지 않는 고유한 이름
트랜잭션
- HTTP 트랜잭션은 요청명령과 응답 결과로 구성
- HTTP 메서드라고 불리는 여러 종류의 요청 명령을 지원(GET, POST, DELETE, PUT, HEAD)
- 모든 HTTP 응답 메시지는 상태 코드와 함께 반환
- '웹페이지'는 보통 하나의 리소스가 아닌 리소스의 모음이다.(여러 객체로 이루어져 있다.)
메시지
- 웹 클라이언트 -> 웹 서버 : 요청 메시지
- 웹 서버 -> 웹 클라이언트 : 응답 메시지
- HTTP 메시지는 시작줄, 헤더, 본문 3개로 구성
- 시작줄 : 요청이라면 무엇을 해야하는지, 응답이라면 무슨 일이 일어났는지를 나타냄
- 헤더 : 쌍점(:)으로 구분되어 있는 하나의 이름과 하나의 값으로 구성
- 본문 : 어떤 종류의 데이터든 들어갈 수 있는 본문
TCP 커넥션
- TCP/IP : HTTP는 신뢰성 있고 대중적인 TCP/IP 프로토콜에 통신을 맡긴다.
- 오류 없는 데이터 전송
- 순서에 맞는 전달
- 조각나지 않는 데이터 스트림
- TCP와 IP가 층을 이루는, 패킷 교환 네트워크 프로토콜의 집합
- 접속, IP주소, 포트번호
- IP주소와 포트번호를 이용해 클라이언트와 서버 사이에 TCP/IP 커넥션을 생성
- 서버의 URL에서 호스트명을 추출
- 호스트명을 IP주소로 변환
- URL에서 포트 번호가 있다면 포트번호를 추출
- 브라우저와 웹서버가 TCP 커넥션을 생성
- IP주소와 포트번호를 이용해 클라이언트와 서버 사이에 TCP/IP 커넥션을 생성
웹의 구성요소
- 프락시
- 클라이언트와 서버 사이에 위치
- 보안을 위해 사용
- 요청과 응답을 필터링하여 신뢰할만한 데이터를 전달
- 캐시
- 자주 찾는 것의 사본을 저장해두는 특별한 종류의 HTTP 프락시 서버
- HTTP는 캐시를 효율적으로 ㅈ동작하게 하고 캐시된 콘텐츠를 최신 버전으로 유지
- 게이트웨이
- 다른 서버들의 중개자로 동작하는 특별한 서버
- HTTP 트래픽을 다른 프로토콜로 변환하기 위해 사용
- 터널
- 비 HTTP 데이터를 하나 이상의 HTTP 연결을 통해 그대로 전송해주기 위해 사용
- 에이전트
- 사용자를 위해 HTTP 요청을 만들어주는 클라이언트 프로그램(ex - 웹 브라우저)
- 웹 요청을 만드는 애플리케이션은 뭐든 HTTP 에이전트
- 웹 브라우저 뿐만 아니라 자동화된 사용자 에이전트도 있다