HTTP and WWW

Programming/Network 2010. 8. 21. 10:30
HTTP와 WWW, 인터넷의 비약적인 발전을 일으킨 놈들이다.
기본적으로 서버와 클라이언트의 구조로 되어있다. 클라이언트( PC, Mobile Phone etc ) 가 서버에 요청을 하면 서버는 해당 웹페이지를 클라이언트에 전송해 주는 구조이다. request / response 라는 기본 개념에서 시작되었다. 그리고 각 웹페이지는 각 사이트(서버)에 존재를 하고, 우리는 이를 www 를 이용해서 각기 다른 host 에 요청을 하고, 원하는 웹페이지를 받는 것이다.
이 웹페이지를 보여주기 위해서, 해석하고 표현을 해주는 도구가 필요한데 이것이 바로 브라우저이다. 유명 브라우저에는 인터넷 익스프로러, 크롬, 파이어 폭스 등이 있다. 이러한 브라우저는 보통 제어기( controller ), 클라이언트 프로토콜 및 해석기( interpreter ) 의 세부분으로 나뉜다. 제어기는 키보드/마우스로부터 입력을 받아 클라이언트 프로그램을 사용하여 문서를 액세스 한다. 문서가 액세스 되고 난 뒤에는 해석기 중 하나를 사용하여 문서를 화면에 표시한다.
클라이언트 프로토콜은 FTP, HTTP 중에 하나가 될 수 있고, 해석기는 문서의 유형에 따라 HTML, Java or JavaScript 가 될 수 있다.

웹페이지를 엑세스 하기 위해서 URL ( Uniform Resource Locator ) 을 입력하는데, 이는 인터넷에서 어떤 종류의 정보든 지정할 수 있는 표준이다. 표준은 아래와 같다.
Protocol  : // Host : Port /  Path 

간단히 설명하자면
Protocol : FTP, HTTP
Host : 정보가 위치하고 있는 컴퓨터이다.
Port : URL 은 선택적으로 port 번호를 포함할 수 있다. 이는 콜론 으루 구분.
Path : 정보가 위치하고 있는 파일의 경로 이름이다.


쿠키
인터넷 웹사이트의 방문기록을 남겨 사용자와 웹사이트 사이를 매개해 주는 정보이다.
고객이 특정 홈페이지를 접속할 때 생성되는 정보를 담은 임시파일이며, 애초에 인터넷 사용자들의 홈페이지 접속을 위해 만들어졌다. 특정 사이트를 처음 방문하면 아이디와 비밀번호를 기록한 쿠키가 만들어지고 다음에 접속했을 때 절차 없이 사이트에 빠르게 연결 할 수 있다.
쿠키는 사용하는 웹브라우저가 자동으로 만들기도 하고 갱신하기도 하며, 웹사이트로 기록을 전달하기도 한다. 이용자가 인터넷에서 어떤 내용을 봤는지 어떤 상품을 봤는지 모든 정보가 기록이 된다. 따라서 이에 따른 보안 문제가 발생할 수 도 있다.

이러한 쿠키의 생성과 저장에 대해서 알아보겠자.


'Programming > Network' 카테고리의 다른 글

프록시 서버( proxy server )  (0) 2010.08.21
HTTP Method  (0) 2010.06.06
Post/Redirect/Get  (1) 2010.05.31
트랜잭션 [ transaction ] 이란?  (0) 2010.05.27
세션 [ session ] 이란?  (0) 2010.05.27

설정

트랙백

댓글

프록시 서버( proxy server )

Programming/Network 2010. 8. 21. 09:47

네트워크에서 프록시, 핸드폰에 wifi 를 쓸때도 프록시.. 여기저기서 프록시 라는 말이 자주 나온다. 그런데 정작 프록시가 뭐하는 건지 모르겠어서 마침내 찾아보게 되었다. ( -_-; 이놈의 게으름병..)
책을 보면 HTTP 는 프록시 서버를 지원한다고 한다. 즉.. 프록시는 서버를 뜻하는 것이었다. 프록시 서버는 최신 요청에 대한 응답들의 복사본을 가지고 있는 컴퓨터 이다. HTTP 클라이언트는 프록시 서버로 요청을 보내고, 프록시 서버는 캐시(cache)를 검사를 하는데, 이때 해당 응답이 서버에 있게 되면 해당 응답을 보내주고, 그렇지 않으면 적절한 서버로 요청을 보내고, 프록시 서버에 돌아온 응답을 클라이언트에게 보내주게 된다. 그리고, 다른 클라이언트의 요청에 대비해 프록시 서버에 응답이 저장된다. 이렇게, 프록시 서버는 컴퓨터의 캐시와 같은 존재로써, 서버의 부하를 줄이고, 트래픽을 감소하고 지연을 개선하는 목적으로 운영이 된다. 이러한 프록시 서버를 사용하기 위해서는 클라이언트가 대상 서버 대신에 프록시를 액세스 하도록 설정 되어 있어야 한다. 핸드폰에 WIFI 를 설정할 때도 보면, proxy 서버를 설정하는 부분이 옵션으로 들어가 있는 것을 볼 수 있을 것이다.

'Programming > Network' 카테고리의 다른 글

HTTP and WWW  (0) 2010.08.21
HTTP Method  (0) 2010.06.06
Post/Redirect/Get  (1) 2010.05.31
트랜잭션 [ transaction ] 이란?  (0) 2010.05.27
세션 [ session ] 이란?  (0) 2010.05.27

설정

트랙백

댓글

[C++] this 포인터 사용하기

Programming/C++ Language 2010. 7. 31. 18:56
연속적인 함수 호출을 위해 this 포인터를 사용해 보도록 하자.

SetHour, SetMinute, SetSecond 라는 함수가 있다고 했을 때, 3번의 각각의 호출이 필요하다.
이때, this 포인터를 반환하는 즉, this 참조 반환을 이용하면 연속적으로 호출이 가능하다.
아래의 예문을 살펴보자.


CTimes& CTimes::SetHour(int nHour)

 hour = nHour;
 
 return *this;
}

CTimes& CTimes::SetMinute( int m )
{
 minute = m;
 
 return *this;
}
 
CTimes& CTimes::SetSecond( int s )
{
 second = s;
 
 return *this;

위와 같이 Set 함수에 *this 를 반환을 하게 되면, 호출 하는 쪽에서 *this를 호출하여 연속적으로 아래와 같이 호출 할 수 있게 된다.

CTimes time;
 
 time.SetHour(10).SetMinute(20).SetSecond(30);
 
 time.Print();

특별히 성능이 좋아진다거나 그런 것은 없지만, 이를 알고 있다면 코드가 간단해서 보기 쉽지 않을까 생각한다. 앞으로 잘 이용하면 좋은 문법이 될 것 같다.

'Programming > C++ Language' 카테고리의 다른 글

Unique Pointer  (0) 2014.03.03
[C++] 동적바인딩( Dynamic binding )  (0) 2011.01.03
[C++] 참조 변수  (1) 2010.07.31
[C++] 참조 반환  (0) 2010.07.31
[C++] 클래스 I  (0) 2010.07.21

설정

트랙백

댓글