반응형

 

웹이 어떻게 작동하는지, HTTP란 무엇인지 알아보기 위해 HTTP 완벽 가이드란 책을 읽기 시작했다. 한 달 안에 무조건 끝내는 것을 목표로 시작한다!

 

1장 : HTTP 개관

웹의 구성요소들을 알아보고, 간단한 예제를 통해 작동방식을 파악한다.

 

1. HTTP란?

  우리는 인터넷을 사용하며 HTTP 혹은 HTTPS라는 단어를 수도없이 봐왔다. 이 단어들은 도대체 무슨 의미를 가진 것일까? HTTPHypertext Transfer Protocol의 약자이다. HTTP는 인터넷에서 대부분의 사람들이 사용하는 통신 규칙이며, 이 규칙을 바탕으로 작성하여 메시지를 전달/수신하면 세계 어디서나 통신이 가능하다! 모스부호를 사용할 때 지켜야 하는 규칙이 있듯이, 인터넷 통신을 하는데 사용되는 통신 규칙이라고 생각하면 된다. 

 

2. 웹 클라이언트와 서버

  인터넷을 사용하는 구성원은 크게 클라이언트와 서버로 나눌 수 있다. 클라이언트는 서버에 특정 작업을 요청(Request)하는 주체이고, 서버는 클라이언트로부터 받은 요청에 대한 응답(Response)를 Return하는 주체이다. 간단한 예시로는 웹 브라우저(크롬, 익스플로러)와 웹 서버(네이버의 서버)의 관계를 생각하면 된다. 

 

3. 리소스

  : 서버가 관리하는 모든 요소들을 지칭한다. 여기엔 text, image, video 등이 있는데, 이들을 구분하기 위해 미디어 타입을 정하고 URI라는 식별자를 붙인다.

  1) MIME(Multipurpose Internet Mail Extensions) : 모든 객체 데이터에 MIME 타입을 붙여서 구분한다.

  2) URI(Uniform Resource Identifier) : 리소스를 지칭하기 위한 식별자이다. URL과 URN이 있다. 대중적으로 쓰이는 것은 URL이다.

 

one-step-a-day.tistory.com/135

 

4. 트랜잭션

  HTTP 통신은 Request와 Response로 구성된다. 클라이언트가 서버에게 요청(Request)을 보내고, 서버에서는 이 요청을 받고 응답(Response)을 보내준다. 

 

  1) Request : 클라이언트에서 서버로 보내는 요청. 요청 목적에 따라 Method Type을 지정해줘야 한다. Method의 종류는 GET, PUT, DELETE, POST, HEAD 등이 있다.

  2) Response

    a. 상태 코드 : 서버가 받은 Request를 정상적으로 처리할 수 있는지 여부를 Return한다. 처리할 수 없는 경우(ex : 찾고자 하는 리소스를 서버가 가지고 있지 않은 경우)에는 실패를 나타내는 상태 코드를 Return한다.

 

5. 메시지 

  요청(Request), 응답(Response)은 모두 메시지이며, Start Line, Header, Body로 이루어진다.

  

6. TCP 커넥션

  HTTP는 어플리케이션 계층이고, 전송 계층(TCP)와 네트워크 계층(IP)를 통과해온 데이터를 해석한다. TCP 커넥션을 맺기 위해서는 IP 주소와 포트 번호를 알아야 하고, 이 정보는 URL에 포함되어있다.

 

( 이 아래부터는 간략한 내용만 들어있어, 추후 더 자세히 포스팅할 예정이다.)

 

7. 프락시

  클라이언트와 서버 사이에 위치하여, 클라이언트의 모든 HTTP 요청을 받아 수정이 필요한 경우 수정하여 서버에 전달한다. 보안을 위해 주로 사용되며, 추후 자세히 다룬다.

 

8. 캐시

  자신을 거쳐 가는 문서들 중 자주 찾는 것들은 클라이언트쪽에 저장해두고 필요할 때 불러오는 것이 훨씬 통신 속도를 빠르게 한다. 이렇게 자주 쓰는 리소스들을 가까이에 저장해두는 행위를 캐싱이라고 한다. 웹 캐시와 캐시 프락시는 이런 캐싱을 해주는 프락시 서버라고 한다.

 

9. 게이트웨이

  서버들의 중개자 역할을 하는 특별한 서버이다.

 

10. 터널

  Raw 데이터를 두 커넥션 사이에서 그대로 전송해주기 위해 사용된다.

 

11. 에이전트

  사용자를 위해 HTTP 요청을 만들어주는 클라이언트 프로그램. 웹 브라우저 등을 지칭한다.

 

[ 1장 요약 ]

  웹에는 클라이언트, 서버라는 구성원들이 있다. 통신을 위하여 클라이언트에서 서버로 요청(Request) 메세지를 보내고, 서버는 클라이언트가 요청한 작업을 수행한 결과를 응답(Response)메시지에 담아 클라이언트로 전송한다. HTTP는 이런 웹 통신이 진행되기 위하여 정해진 통신 규약 중 하나이다!

 

Telnet을 사용하면, 아래와 같은 Request 메시지 요청을 보내고 받는 과정을 직접 해볼 수 있다. 

telnet google.com 80 이라는 명령어는 telnet을 사용하여 google.com의 80 포트에 접속하라는 의미이다. 요청 명령어, 응답 메시지를 확인해볼 수 있다.

 

반응형

+ Recent posts