본문 바로가기
DEVLOG/Backend

웹 프로그래밍(Web Programming)이란 무엇인가

2019. 9. 9.
반응형

웹 프로그래밍(Web Programming)

HTTP(S) 프로토콜로 통신하는 클라이언트와 서버를 개발하는 것입니다.

Chrome 브라우저를 실행하여 구글에 접속하는 것도 웹 프로그램이 동작하는 것입니다. 이 경우에는 Chrome 브라우저가 웹 클라이언트이고, 구글 서버는 웹 서버가 됩니다. 즉, 웹 클라이언트가 요청하고 웹 서버가 응답하는 클라이언트-서버 프로그램이 동작하는 것입니다.

 

 

웹 클라이언트(Web Client)

웹 브라우저 이외에도 웹 서버에 요청을 보내는 웹 클라이언트는 다양하게 만들 수 있습니다.

  • 웹 브라우저를 사용하여 요청
    웹 브라우저는 주소창에 입력된 문장을 해석하여 웹 서버에게 HTTP 요청을 보내는 역할을 수행합니다.

  • 리눅스 curl 명령을 사용하여 요청
    $ curl http://www.example.com

    curl 명령은 인자로 넘어온 URL로 HTTP 요청을 보내는 웹 클라이언트의 역할을 수행합니다.

  • Telnet을 사용하여 요청
    리눅스의 telnet 프로그램을 사용하여 HTTP 요청을 보낼 수도 있습니다. 쉘 프롬프트에서 다음과 같이 명령을 입력합니다. 마지막에는 Enter를 두 번 입력합니다.
    $ telnet www.example.com 80
    Trying 93.184.216.119...
    Connected to www.example.com.
    Escape character is '^]'.
    GET / HTTP/1.1
    Host: www.example.com

    telnet 명령은 터미널 창에서 입력하는 내용을 그대로 웹 서버에 전송합니다. 위에서 입력한 내용은 HTTP 프로토콜의 요청 메시지 규격에 정의된 규칙에 따라 HTTP 요청을 보내는 것으로, telnet 프로그램이 웹 클라이언트의 역할을 수행하고 있습니다.
  • 직접 만든 클라이언트로 요청
    # example.py
    import urllib.request
    print(urllib.request.urlopen("http://www.example.com").read().decode('utf-8'))

    example.py 프로그램이 웹 클라이언트가 됩니다.
    python -c "import urllib.request; print(urllib.request.urlopen('http://www.example.com').read().decode('utf-8'))"

    다음과 같이 한 문장으로도 HTTP 요청을 보내는 웹 클라이언트를 만들 수도 있습니다.



반응형

댓글