노래하듯 이야기하고, 춤추듯 정복하라.

http 프로토콜 공부하기 본문

프로그래밍

http 프로토콜 공부하기

hyeoke 2017. 9. 26. 16:18

HTTP 프로토콜을 공부해 보자!

 

1.     http 프로토콜 개발자

Tim Berners-Lee : 영국의 컴퓨터 엔지니어로 하이퍼텍스트를 개발했으며, url/http/html을 설계했다이것들의 영향력이 워낙 강력하고 광범위해서 인터넷의 아버지라고 부른다.

 

2.     http ?

http hypertext transfer protocol의 약자이다인터넷 상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 프로토콜이다애플리케이션 레벨의 프로토콜로 TCP/IP위에서 작동하며 가장 성공적인 인터넷 프로토콜이다. (* 참고로 인터넷 프로토콜은 http 말고도 https, ftp와 같이 여러 개가 있다.) http는 컴퓨터가 취급할 수 있는 데이터(이미지동영상오디오텍스트 등)는 모두 전송할 수 있다인터넷 브라우저에서 흔히 볼 수 있는 html 문서는 http로 보낼 수 있는 데이터의 한 종류이다.

 

-       HTTP의 작동방식

http는 서버/클라이언트 모델을 따른다클라이언트에서 요청을 보내면 서버는 요청을 처리해서 응답한다. 클라이언트는 우리가 흔하게 사용하는 chrome, firefox, internetExplorer 등의 브라우저가 대표적이다브라우저 말고도 Telnet이나 리눅스 curl명령 등도 클라이언트의 역할을 할 수 있으며우리가 직접 개발할 수 도 있다. (예 -> python을 사용하면 코드 두 줄로도 만들 수 있음개신기…)

서버는 클라이언트의 요청을 받아서 그 요청을 해석하고 응답하는 소프트웨어가 설치된 하나의 컴퓨터라고 생각하면 된다서버에서 사용하는 소프트웨어는 apache, nginx, IIS, lighttpd 등이 있다.



 

3.     Connectless 와 Stateless

Http는 Connectless 방식으로 작동한다. Connectless란 서버에 연결하고 서버가 클라이언트의 요청을 처리하고 나면 서버와 클라이언트의 연결을 끊어버린다기본적으로는 자원 하나에 대해서 하나의 연결을 만든다이런 작동방식 때문의 클라이언트의 이전 상태를 알 수가 없는 단점이 생긴다이러한 특징을 ‘stateless’라고 하는데 connectless에서 파생된 특징으로 보면 된다이 문제를 해결할 수 있는 것이 우리가 웹을 공부하면 흔히 듣게 되는 ‘Cookie’라는 녀석이다.


반면에 http의 장점으로는 불특정 다수에게 서비스하기 좋은 방식이다수십~수백만 명이 웹을 사용하더라도 그들의 접속 유지를 최소한으로 함으로서많은 유저들의 요청을 처리하는데 능하다.


Cookie이 대해서는 자세히 공부하진 않았지만 간단히 설명하자면 서버의 상태정보를 담고 있는 정보조각이다. (Ex) 클라이언트가 로그인에 성공하면 서버는 로그인 정보를 자신의 데이터베이스에 저장하고 동일한 값을 cookie 형태로 클라이언트에 보낸다클라이언트는 다음 번 요청 때 cookie를 서버에 보내는데 서버는 cookie 값으로 자신의 데이터베이스를 조회해서 로그인 여부를 확인할 수 있다나중에 더 자세히 공부하게 되면 따로 포스팅해 보겠다.


Ps. 텍스트를 중심으로 포스팅할 시 팁 -> 워드파일에 싹 정리해놨다가 전체 복붙하니 들여쓰기나 행간격 등이 딱 잡혀서 보기 좋은것 같네요!

'프로그래밍' 카테고리의 다른 글

[Git Of Hell] Git Bash - 원격 저장소로 Push하기  (0) 2018.02.12
웹프로그래밍 입문  (0) 2017.09.25
군대에서 코딩하기  (0) 2017.09.25
Comments