■ 온라인에서의 사용자 경험 향상 인터넷 쇼핑몰을 이용하다보면 접속만 했는데도 로그인이 되는 경우가 있다. 심지어 아직 로그인을 하지 않았는데도 이전에 접속해서 쇼핑 카트에 담아두었던 물건 목록들이 그대로 남아있을 때도 있다. 로그인한 상태라면 로그인 했었던 정보를 가지고 쇼핑 카트의 정보를 남겨놓을 수도 있겠지만 로그인을 하지도 않았는데 어떻게 이런 일이 가능한 것일까? 앞에서 공부한 HTTP의 특성을 살펴보면 더더욱 이해가 되지 않는다. 왜냐하면 HTTP는 클라이언트의 상태를 저장하지 않는 stateless(무상태) 성질을 갖기 때문이다. 그래서 HTTP는 기본적으로 이러한 상태 저장 기능을 제공하지 않기 때문에 쿠키(Cookies)라는 것이 새로 개발되었다. ■ 상태를 저장하는 쿠키(Cookies)..
■ HTTP Message HTTP 메시지(Message)는 클라이언트 request와 서버 response 2가지로 이루어지는데 구성되는 형태는 위 그림과 같다. 처음에 위치한 method는 특정한 명령어에 해당한다. 가령 GET이라는 method는 클라이언트가 어떤 데이터를 가지고 싶을 때 사용한다. 다른 method들에 대해서는 뒤에서 다시 알아보자. method 다음에는 URL을 작성해서 어떤 오브젝트에 대한 요청인지 적게 되어있다. 그 뒤에는 HTTP 버전을 작성하는데 1.1버전인지 2버전인지 등 어떤 버전의 HTTP를 사용하고 있는지 적는 곳이다. 다음 줄의 header lines에서는 어떤 host에게서 데이터를 가져오고 싶은가를 적는다. header field name에는 어떤 정보의 종류..
■ World Wide Web (WWW) 월드 와이드 웹(World Wide Web)은 팀 버너스 리가 1990년에 처음 제안을 해서 만들어진 것이다. 웹 페이지에는 텍스트도 있고 그림들도 있고 여러가지 오브젝트(objects)들이 섞여 있다. 이 오브젝트에는 문서 파일, JPEG 이미지 파일, 자바코드, 오디오 데이터 등이 있다. 그렇다면 웹 페이지는 어떻게 기술이 될까? 바로 HTML이라는 프로그램 언어로 기술된다. 위 그림의 HTML 파일을 보면 다양한 오브젝트들을 포함하고 있다. 이런 오브젝트들은 URL(Uniform Resource Locator)이라고 하는 방식으로 나타낸다. URL은 사용자가 얻으려고 하는 데이터가 어디에 위치해 있는지 정확한 규칙에 따라 표현하는 방식이다. 위의 예시로 주어..
■ 애플리케이션 레이어 프로토콜 인터넷 프로토콜 스택을 보면 애플리케이션 레이어는 제일 상위에 있으며, 여기에 있는 응용 프로그램들은 다른 end divice에 있는 애플리케이션 레이어 프로그램과 데이터를 주고 받게 된다. 그렇다면 이 데이터를 주고 받을 때 애플리케이션끼리 이해할 수 있는 언어가 필요할 것이고, 이런 것을 애플리케이션 레이어 프로토콜이라고 한다. 애플리케이션 레이어 프로토콜은 아래와 같이 Syntax, Semantics, Pragmatics 3가지로 구성되어 있다. ● message syntax - 메시지에 어떤 필드들이 존재하는가 - 내가 응답 메시지를 보내기 위해 메시지의 타입은 무엇을 해야하는가 - 요청 메시지인가, 응답 메시지인가 - 요구하는 데이터가 무엇이고, 그 요구하는 데이..
■ 네트워크 애플리케이션 ● 네트워크 응용 프로그램에는 어떤 것들이 있는가? - 이메일 - 웹 브라우저 - SNS - 메신저 프로그램 - 온라인게임 - 스트리밍 비디오 서비스(유튜브, 넷플릭스) ● 네트워크 응용 프로그램의 특징 이런 프로그램들은 end system, 사용자 컴퓨터 또는 사용자 스마트폰과 같은 사용자의 디바이스에서 동작한다. 그리고 이 네트워크에 있는 end system에서 동작하면서 네트워크를 통해 다른 end system과 통신을 한다. 네트워크 응용 프로그램은 중간에 있는 라우터와 같은 인터넷 토킹 장비에 설치되어 있을 필요는 없다. 왜냐하면 라우터는 단순히 end system 사이에 데이터를 전달하는 역할만을 수행하기 때문이다. 그리고 응용 프로그램들은 랩탑이나 스마트폰 같은 en..
● 1990~2000 미 국방성은 단순 군사 작전에만 알파넷을 사용하는 것이 아니라 무기 개발 연구에도 사용하기 위해 과학자들이 사용할 수 있는 연구용 목적으로도 필요성을 느꼈다. 그래서 알파넷을 밀 넷(MILNET, Military Net)이라는 군사형 네트워크와 NSFNET(National Science Foundation)이라는 과학자들이 사용하는 네트워크로 나누었다. 하지만 이 둘 모두 일반인들이 사용하는 네트워크는 아니었다. 그러다 이 인터넷을 일반인들도 상업적으로 사용하면 좋겠다는 이야기가 나오기 시작했는데 이 2개의 네트워크 중 군사적 목적인 밀 넷이 아닌 NSFNET을 개방하기로 하였다. 이와 비슷한 시기의 90년대 초반에 유럽 물리학 연구소의 팀 버너스 리(Tim Berners-Lee)라..
■ 인터넷의 역사 ● 1961~1972 본격적으로 인터넷이 서비스 되기 전에 사람들은 어떤 식으로 멀리 있는 컴퓨터에 데이터를 전달할 것인지 연구했다. 처음에는 전화망이 있었고 이 전화망은 회선 교환(circuit switching) 방식으로 데이터를 전달했었다. 하지만 회선 교환 방식으로는 많은 양의 데이터를 많은 수의 사용자들에게 서비스 할 수 없을 것이라고 생각해 패킷 교환망이 개발되었다. 패킷 교환망의 이론적 기반은 Leonard Kleinrock 교수가 개발하였고, 미 국방성의 ARPAnet(Advanced Research Project Agency)라는 기관에서 알파넷이라는 이름의 네트워크를 개발하게 되었다. 1972년에 처음으로 알파넷 데모(demo)를 했었는데 이 때는 단 4개의 노드만으로..
■ 네트워크 보안 네트워크 보안 연구는 크게 둘로 나누어 볼 수 있다. 첫번째는 어떤 공격들이 존재하는가를 살펴보는 것이다. 해커들이 어떤 식으로 컴퓨터 네트워크를 공격하는 지에 대한 연구이다. 두번째는 그러한 공격들을 어떻게 막을 것인지, 그리고 공격을 막을 네트워크 아키텍처(architecture)를 어떻게 설계할 것인지 연구한다. 인터넷은 초기에 상호 신뢰할 수 있는 사람들만 접속하는 네트워크라고 가정하고 만들어졌었다. 그래서 사용자의 신분이 신뢰할 수 있는 사람들로 구성되어 있기 때문에 보안에 대한 고려를 하지 못한 상태로 만들어진 것이다. 그러나 인터넷이 대중에게 공개되고 불특정다수의 해커들이 네트워크에 공격을 가하자 그제서야 인터넷 프로토콜의 설계자들이 어떻게 공격을 막을 지 궁리한 것이 네트..
- Total
- Today
- Yesterday
- 알고리즘
- 백준 풀이
- 웹개발
- C언어
- 네트워크
- 서블릿
- 컴퓨터
- Servlet
- jsp
- 컴퓨터과학과
- 컴퓨터공학과
- 알고리즘 문제
- TCP
- It
- 자바
- 컴퓨터공학
- 인터넷
- 코딩 테스트
- 코드 리뷰
- 알파넷
- 코딩
- 백준
- 프로그래밍
- 컴퓨터 네트워크
- java
- 컴퓨터기초
- 컴퓨터이론
- C++
- 컴퓨터과학
- 코딩테스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |