반응형
웹 프로그래밍(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 요청을 보내는 웹 클라이언트를 만들 수도 있습니다.
반응형
'DEVLOG > Backend' 카테고리의 다른 글
[HTTP] HTTP 처리 방식에 대해 알아보자 (0) | 2019.09.09 |
---|---|
[HTTP] 메시지 구조와 함께 HTTP 프로토콜 이해하기 (1) | 2019.09.09 |
댓글