-
HTTP Request와 ResponseWeb관련 2020. 6. 17. 12:58반응형
(HTTP request와 response에 대해 참고할만한 글)
[HTTP Request]
HTTP Request는 통신을 위해 client에서 server로 전송되는 binary data packet입니다.
HTTP Reqeust는 다음과 같은 요소를 포함하고 있습니다.
1. Request Line
- Request Line은 GET, PUT 등과 같은 Method Token 뒤에 Request URI와 사용중인 HTTP Protocol을 지정합니다.
2. Header(header는 request 안에 없는 경우도 있습니다.)
- Request Body 이전까지가 Request Header입니다.
3.Request Body (request body는 request 안에 없는 경우도 있습니다.)
- Reqeust Body는 현재 Request를 적절하게 처리할 수 있도록 Server에서 요구하는 부가적인 정보로 구성되어 있습니다.
HTTP request의 예
Request Line: GET /utilities/weatherfull/city/hyderabad Request Method: GET Request Time: 2020-04-03 02:18:48 Accept-Encoding: gzip, deflate Host address: restapi.demoqa.com Client IP: Client Port: 57402 HTTP Protocol Version: Connection: close User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36 Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7 Request body:
[HTTP Response]
HTTP Response는 Client의 request에 대한 응답으로 server에서 client로 전송한 packet정보입니다.
HTTP Response packet은 HTTP Request와 비슷한 구조를 가지고 있습니다.
1. Status Line
- HTTP Protocol version과 Status Code, Reason Phrase를 가지고 있습니다.
2. Header(0개 이상)
- Status Line 이후 부터 Response Body 전까지가 Header입니다. Response Header는 클라이언트로 추가적인 정보를 전달합니다.
- Header 중에서 "Content-Type"이 "application/json"과 "charset=utf-8"으로 주어진 경우, server가 client에게 현재 response packet의 header 이후에 오는 Response Body 내용에 JSON 형태의 data가 포함되어 있다는 것을 알려주는 것입니다. client 측에서 JSON 형태의 Response Body를 해석하기 위해서는 마찬가지로 JSON을 사용해야만 합니다.
3. Response Body
- Response Body는 클라이언트에 의해 요청된 resource data를 포함합니다.
Restful Web Service에서는 client가 요청한 정보를 resource라고 합니다.
HTTP Response의 예
Status Line: HTTP/1.1 200 OK Response status code -> 200 OK Server: openresty Date: Fri, 03 Apr 2020 02:18:48 GMT Content-Type: application/json; charset=utf-8 Content-Length: 457 Connection: close X-Cache-Key: /data/2.5/weather?APPID=199c0c704dcd69ff1a88fc99385dae08&q=hyderabad Access-Control-Allow-Origin: * Access-Control-Allow-Credentials: true Access-Control-Allow-Methods: GET, POST Response Body: { "City": "Hyderabad", "Temperature": "26.67 Degree celsius", "Humidity": "43 Percent", "WeatherDescription": "broken clouds", "WindSpeed": "2.55 Km per hour", "WindDirectionDegree": "231 Degree" }