CS 정리 네트워크(4)

Shim.SeongHo·2021년 5월 12일
0

[네트워크]

목록 보기
4/4
post-thumbnail

네트워크(4)

8. GET, POST

클라이언트가 서버로 요청을 보내는 방법인 HTTP Method에는 크게 두 가지 방법이 있는데 GET 방식과 POST 방식이 있다.

8-1. GET

GET은 클라이언트에서 서버로 어떠한 정보를 요청하기 위해 사용되는 메소드이다.(ex. 게시판의 게시물을 조회)

요청하는 데이터가 HTTP Request Message의 헤더 부분에 url이 담겨서 전송된다. (GET은 body가 대부분 없다.)

방식은 URL 끝에 ? 를 붙이고 변수명=값& 형식이다.

/test/demo_form.php?name1=value1&name2=value2

서버에서는 name1 과 name2 라는 파라미터 명으로 value1 과 value2의 파라미터 값을 전달 받을 수 있다.

GET 방식은 url 이라는 공간에 담겨가기 때문에 전송할 수 있는 데이터의 크기가 제한적이다. 그리고 url에 데이터가 그대로 노출이 되므로 보안적인 측면에서는 매우 좋지않다.

8-2. POST

POST는 클라이언트에서 서버로 리소스를 생성하거나 업데이트하기 위해 데이터를 보낼 때 사용되는 메소드이다.(ex. 게시판에 게시글을 작성)

POST는 전송할 데이터가 HTTP Request Message의 바디 부분에 데이터가 담겨서 전송된다. (name1=value1&name2=value2 이 부분이 바디에 담겨 보내진다고 생각한다.)

POST로 데이터를 전송하면 길이 제한이 따로 없어서 용량이 큰 데이터를 보낼 때 사용하거나 GET처럼 데이터가 URL 상으로 바로 드러나지 않기 때문에 보안 측면에서는 더 좋다.

하지만 데이터를 암호화하지 않으면 바디의 데이터도 결국 볼 수 있다.

8-3. 차이점

목적 : GET은 서버에 데이터를 요청할 때, POST는 서버의 리소스를 생성하거나 업데이트할 때 사용한다.
캐싱 : GET방식은 브라우저에서 캐싱할 수 있다. 이를 이용해서 개인정보가 포함되지 않는 상황에서 캐싱을 하여 속도를 높이거나 즐겨찾기를 편리하게 하기 위해 사용될 수 있다.
바디의 유무 : GET 은 URL 파라미터에 요청하는 데이터를 담아 보내기 때문에 HTTP 메시지에 바디가 없다. POST 는 바디에 데이터를 담아 보내기 때문에 당연히 HTTP 메시지에 바디가 존재한다.

참고

https://noahlogs.tistory.com/35

profile
알아가는 재미

0개의 댓글