2. 요청과 응답
![Request와 Response^[출처 : https://medium.com/@rohitpatil97/http-request-http-response-context-and-headers-part-iii-5c37bd4cb06b]](https://miro.medium.com/max/875/1*8-fT6K1o6nHiBRxKppcqOg.png)
Figure 1: Request와 Response1
IE, 크롬, 파이어폭스 같은 웹브라우저는 1. 서버에 원하는 정보를 요청하고 2. 서버로 부터 원하는 정보(HTML 형식)를 내려받아, 3. HTML 문서를 일반 문서형태로 전환해서 보여주는 기능을 수행합니다. 정보를 서버에 요청하는 것을 Request(요청)라 하고, 서버로 부터 정보를 내려받는 것을 Response(응답)라고 합니다. 크롤링에서는 무엇보다도 “요청 및 응답”의 과정이 중요한데2 웹브라우저 대신에 R과 Rstudio를 통해 이 이 두 가지 기능을 수행합니다.
Request(요청)
주소창에 주소를 입력하고 엔터를 치거나, 하이퍼 링크를 클릭하는 등의 행위가 발생하면 브라우저는 서버에 Request(요청) 신호를 보냅니다. 이때 인터넷의 Request(요청)는 HTTP 전송규약을 따르며, 그렇지 않을 경우 서버로 부터 Response(응답)에 실패하게 됩니다. 따라서 R과 Rstudio에서 요청신호를 보낼때도 마찬가지로 HTTP 규약을 충족해야만 제대로된 정보를 받을 수 있습니다.
HTTP 전송규약에는 4~5 가지의 요청 메서드(Figure2)있으며, 그 중에서 우리가 꼭 알아야 할 것은 GET과 POST입니다3.
![HTTP 메서드 종류^[출처 : https://medium.com/@NikiMichaelsonqiv/http-methods-get-vs-post-b3ffb60c7f55]](https://miro.medium.com/max/875/1*xJEUm1hUvxppvcjY14IKQA.jpeg)
Figure 2: HTTP 메서드 종류4
GET 요청
GET 요청의 예
POST 요청
POST 요청의 예
GET vs POST
HTTP POST 요청은 클라이언트에서 서버로 전송할 때 추가적인 데이터를 body에 포함할 수 있다.
반면에 GET 요청은 모든 필요한 데이터를 URL에 포함하여 요청한다.
HTML의 <form>태그에 method="POST" 또는 method="GET"(기본값)을 모두 사용할 수 있다.
만약에 GET 메소드를 사용하면 모든 form data는 URL로 인코딩되어 action URL에 query string parameters로 전달된다.
POST 메소드를 사용하면 form data는 HTTP request의 message body에 나타날 것이다.
출처: https://im-developer.tistory.com/166 [Code Playground]
출처 : https://medium.com/@rohitpatil97/http-request-http-response-context-and-headers-part-iii-5c37bd4cb06b↩︎
HTML문서를 일반문서로 변환하는 과정은 그다지 중요치 않습니다. 대신 HTML 문서를 분석(parsing)하여 원하는 정보를 뽑아내는 과정이 필요한데 이 부분은 다음 글에서 설명하겠습니다.↩︎
경험상 GET과 POST 외의 다른 요청 메서드는 보지 못했습니다.↩︎
출처 : https://medium.com/@NikiMichaelsonqiv/http-methods-get-vs-post-b3ffb60c7f55↩︎
출처 : https://codeteddy.com/2017/06/06/create-api-with-asp-net-core-day-3-working-with-http-status-codes-in-asp-net-core-api/↩︎