본문 바로가기

HTTP

(4)
<네트워크> http 버전 별 특징 (3.0) 1. HTTP/3 - HTTP/3 은 UDP 기반의 프로토콜인 QUIC을 사용하여 통신하는 프로토콜이다. 아직 HTTP/2 도 점유율이 50%가 되지 않는데 놀랍다. 아직 표준은 아니지만 구글은 이미 실험적으로 사용하고 있다. - UDP를 모른다면 TCP와의 비교에 대해 먼저 알아보는 것을 추천한다. 어쨌든 UDP를 조금이라도 안다면 이런 생각이 들 것이다. TCP보다 당연히 빠르지만 신뢰성도 떨어지고 전송 순서도 보장되지 않는 프로토콜 아닌가? 이는 반은 맞고 반은 틀렸다. TCP는 신뢰성있는 통신을 위해 몇 가지 방법을 사용하였다. 이들 또한 클라이언트와 서버와의 통신이므로 레이턴시가 발생하고, 이는 TCP라는 프로토콜이 생길 때부터 정의된 표준이므로 무시할 수가 없다. 2. TCP의 문제점 - 위에..
<네트워크> http 버전 별 특징 (0.9 / 1.0 / 1.1 / 2.0) 1. http/0.9 - 초기 단계의 http 프로토콜은 버전 번호도 없었으며 매우 간단했다. 이후 버전과 구별하기 위해 0.9라고 불리게 되었다. - http/0.9 요청은 단일 라인으로 구성되며 리소스에 대한 경로로 가능한 메서드는 GET이 유일했다. GET /myapp.html - 응답 또한 매우 단순하게 파일 내용 자체로 구성되어 있었다. 헤더도 없이 html파일만 전송될 수 있으며 다른 유형의 문서는 전송될 수 없음을 의미했다. 상태코드도 없어서 문제가 있을 경우 파일 내부에 문제에 대한 설명과 함께 보내곤 했다. 2. http/1.0 - http/1.0은 이전에 비해 브라우저와 서버에서 확장성있게 진화되었다. 1.0이라는 버전정보가 전송되기 시작했고, 상태코드가 응답의 시작 부분에 붙어 전송되..
<네트워크> 페이지 로딩 과정 1. 소개 - 이번 장에서는 우리가 브라우저에서 특정 페이지로 이동할 때 어떤 과정을 거치는지 알아보자. - 흔히 우리는 브라우저가 URL을 해석하고 HTTP를 사용하여 웹페이지를 다운로드하여 사용자에게 보여준다고 알고있다. 이 장에서는 그 뒷면에서 어떤 과정들을 거치는지 알아볼 것이다. 2. 과정 - 여기서 설명하는 과정은 현재의 페이지(www.current.com) 에서 특정한 다음 페이지(www.next.com) 로 이동한다고 가정한다. - 이 때 웹 페이지를 로드하는 과정은 아래의 W3C Spec을 따른다. - 아래의 노란 부분은 JS로 건드릴 수 없고, 네트워크 Level에서 작업된다. * Prompt for unload - 현재 페이지에서 다른 페이지로 이동할 때 발생하는 이벤트이다. - js..
<네트워크> 응용 계층 1. 응용 계층의 역할 * 응용계층 - 애플리케이션 : 운영 체제에서 실행되는 모든 소프트웨어를 의미한다. 인터넷 익스플로러 같은 웹브라우저부터 Outlook과 같은 메일프로그램 등을 포함한다. - 클라이언트 : 서비스를 요청하는 측을 의미한다. 웹 브라우저나 메일프로그램 등을 의미한다. - 서버 : 서비스를 제공하는 측을 의미한다. 웹 서버 프로그램과 메일 서버 프로그램 등을 의미한다. - 위와 같은 애플리케이션들이 응용 계층에서 동작한다. 참고로 이 장에서의 응용 계층은 세션 계층과 표현 계층을 포함하는 것으로 생각한다. - 응용계층은 사용자 측의 요청을 전달하기 위해 통신 대상이 이해할 수 있는 메시지(데이터)로 변환하고 전송 계층으로 전달한다. - 클라이언트 측 애플리케이션(웹 브라우저, FTP,..