Network
-
HTTP의 역사 그리고 브라우저의 동작 원리 (feat. HTML, CSS의 탄생 배경)Network 2020. 7. 13. 14:04
HTTP는 웹 생태계에서 절대 빠질 수 없는 부분입니다. 세계대전과 많은 연구를 통해서 통신은 발전해왔고, 이로인해 서로의 정보를 공유할 수 있게 되면서 보다 효율적이고 정확한 통신이 가능해졌습니다. 이렇게 발전해온 HTTP가 어떻게 바뀌었는지에 대해 알아보겠습니다. 팀 버너스 리 팀 버너스 리 아저씨는 유럽 입자 물리 연구소(CERN)에 속한 소프트웨어 공학자였으며 조금 뜬금 없지만 이 기관에서 1990년에 WWW를 개발하게 됩니다. WWW는 World Wide Web의 약자이며 말 그래도 전 세계를 통튼 웹입니다. 여기서 우리는 http, ftp 등의 프로토콜을 사용해서 정보를 주고받을 수 있게됩니다. WWW의 등장으로 사용자는 웹 상에 있는 정보들을 언제든 접근하여 사용할 수 있게 되었습니다. 또한..
-
컴퓨터와 Web은 어쩌다 만들어졌을까? (feat. HTML , CSS, Javascript)Network 2020. 7. 11. 00:59
오늘날 우리는 대부분 1대 이상의 컴퓨터를 가정에 보유하고 있습니다. 우리나라에는 본격적으로 90년 후반부터 가정용 컴퓨터가 보급되기 시작했는데, 이 시절 가장 많이 사용하던 운영체제는 MS사의 Windows 95, 또한 IE 등의 웹 브라우저를 통해 웹을 사용할 수 있었습니다. 네, 여러분들이 예전에 보셨던 그 화면입니다...😓 이렇게 컴퓨터의 보급과 웹이 등장하게 된 이유에 대해서 알아보도록 하겠습니다. 폰 노이만 먼저 컴퓨터를 알기 위해서는 폰 노이만이라는 아저씨로 시작됩니다. 수학자와 컴퓨터 과학자로 활동하고 있었던 그는 세계 2차대전을 겪으며 많은 업적을 세웠는데 그 중에서 가장 큰 업적은 바로 현대의 컴퓨터 구조의 확립입니다. 긴 전쟁 기간 동안 많은 발전을 이루었는데 이 때 맨해튼 프로젝트 ..
-
Network - HTTP/2.0Network 2020. 6. 30. 19:53
HTTP/2.0 HTTP/2.0에 대해서 만들기 시작한 배경, HTTP/1.1과의 주요 차이점, 현재까지 알려진 보안 이슈에 대해 다루겠습니다. HTTP/2.0의 등장 배경 HTTP/1.1의 메시지 포맷은 구현의 단순성과 접근성에 주안점을 두고 최적화 되었습니다. 그러다 보니 성능은 어느 정도 희생시키지 않을 수 없었습니다. 커넥션 하나를 통해 요청 하나를 보내고 그에 대해 응답 하나만을 받는 HTTP의 메시지 교환 방식은 단순하여 좋지만, 응답을 받아야만 그 요청을 보낼 수 있기 때문에 심각한 회전 지연을 피할 수 없었습니다. 물론 이를 해결하기 위해 병렬 커넥션이나 파이프라인 커넥션이 도입되었지만 근본적인 해결책은 되지 못했습니다. 그래서 HTTP/2.0가 등장하게 되었습니다. 개요 HTTP/2.0은..
-
Network - 웹 로봇Network 2020. 6. 30. 19:51
웹 로봇 웹 로봇은 사람과의 상호작용 없이 연속된 웹 트랜잭션들을 자동으로 수행하는 소프트웨어 프로그램입니다. 자동으로 웹 사이트를 돌아다니면서 컨텐츠를 가져오고, 하이퍼링크를 따라가고, 그들의 발견한 데이터를 처리합니다. 크롤러와 크롤링 웹 크롤러는, 먼저 웹페이지를 한 개 가져오고, 그 다음 그 페이지가 가리키는 모든 웹페이지를 가져오고, 다시 그 페이지들이 가리키는 모든 웹페이지들을 가져오는, 이러한 일을 재귀적으로 반복하는 방식으로 웹을 순회하는 로봇입니다. 어디에서 시작하는가: '루트 집합' 크롤러가 방문을 시작하는 URL들의 초기 집합은 루트 집합이라고 불립니다. 일반적으로 좋은 루트 집합은 크고 인기 있는 웹 사이트, 새로 생성된 페이지들의 목록, 그리고 자주 링크되지 않는 잘 알려져 있지..
-
Network - 게이트웨이, 터널, 릴레이Network 2020. 6. 30. 19:49
이번 장에서 살펴볼 주제 게이트웨이 : 서로 다른 프로토콜과 애플리케이션 간의 HTTP 인터페이스다. 애플리케이션 인터페이스 : 서로 다른 형식의 웹 애플리케이션이 통신하는 데 사용한다. 터널 : HTTP 커넥션을 통해서 HTTP가 아닌 트래픽을 전송하는데 사용한다. 릴레이 : 일종의 단순한 HTTP 프락시로, 한 번에 한 개의 홉에 데이터를 전달하는데 사용한다. 게이트웨이 웹이 더 복잡한 리소스를 올려야 할 필요가 생기면서, 모든 리소스를 한 개의 애플리케이션으로만 처리할 수 없습니다. 그래서 개발자들은 인터프리터 같이 리소스를 받기 위한 경로를 안내하는 역할을 하는 게이트웨이를 고안해냈습니다. 게이트웨이는 리소스와 애플리케이션을 연결하는 역할을 수행합니다. 클라이언트 측 게이트웨이와 서버 측 게이트웨..
-
Network - 캐시Network 2020. 6. 30. 19:47
이번 장에서 살펴볼 주제 캐시는 불필요한 데이터 전송을 줄여서, 네트워크 요금으로 인한 비용을 줄여준다. 캐시는 네트워크 병목을 줄여준다. 대역폭을 늘리지 않고도 페이지를 빨리 불러올 수 있게 된다. 캐시는 원 서버에 대한 요청을 줄여준다. 서버는 부하를 줄일 수 있으며 더 빨리 응답할 수 있게 된다. 페이지를 먼 곳에서 불러올수록 시간이 많이 걸리는데 캐시는 거리로 인한 지연을 줄여준다. 불필요한 데이터 전송 복수의 클라이언트가 자주 쓰이는 원 서버 페이지에 접근할 때, 서버는 같은 문서를 각각 한 번씩 전송하게 됩니다. 이 떄 똑같은 바이트들이 네트워크를 통해 반복해서 이동하는데 이 불필요한 데이터 전송은 웹 서버에 부하를 줍니다. 이 때 캐시를 이용하면, 서버 응답은 캐시에 보관되며 캐시된 사본이 ..
-
Network - 프락시Network 2020. 6. 30. 19:45
이번 장에서 살펴볼 주제 HTTP 프락시와 웹 게이트웨이를 비교하고 HTTP 프락시가 어떻게 배치되는지 알아본다. 몇 가지 유용한 활용방법을 보여준다. 프락시가 실제 네트워크에 어떻게 배치되어 있는지 그리고 트래픽이 어떻게 프락시 서버로 가게 되는지 설명한다. 브라우저에서 프락시를 사용하려면 어떻게 설정해야 하는지 보여준다. HTTP 프락시 요청이 서버 요청과 어떻게 다른지, 그리고 프락시가 어떻게 브라우저의 동작을 미묘하게 바꾸는지 보여준다. 일련의 프락시 서버들을 통과하는 메시지의 경로를, Via 헤더와 TRACE 메소드를 이용해 기록하는 방법을 설명한다. 프락시에 기반한 HTTP 접근 제어를 설명한다. 어떻게 프락시가 클라이언트와 서버 사이에서 각각의 다른 기능과 버전 들을 지원하면서 상호작용 할 ..
-
Network - 웹 서버Network 2020. 6. 30. 19:43
이번 장에서 살펴볼 주제 여러 종류의 소프트웨어 및 하드웨어 웹 서버에 대해 조사한다. HTTP 통신을 진단해주는 간단한 웹 서버를 펄로 작성해본다. 어떻게 웹 서버가 HTTP 트랜잭션을 처리하는지 단계별로 설명한다. 다채로운 웹 서버 웹 서버는 HTTP 요청을 처리하고 응답을 제공합니다. 즉, 리소스에 대한 HTTP 요청을 받아서 컨텐츠를 클라이언트에게 돌려줍니다. 웹 서버 구현 웹 서버는 HTTP 및 그와 관련된 TCP 처리를 구현한 것입니다. 자신이 제공하는 리소스를 관리하고 웹 서버를 설정, 통제, 확장하기 위한 관리 기능을 제공합니다. 웹 서버는 HTTP 프로토콜을 구현하고, 웹 리소스를 관리하고, 웹 서버 관리 기능을 제공합니다. 그리고 TCP 커넥션 관리에 대한 책임을 운영체제와 나눠 갖습니..