티스토리 뷰
- HTTP 프로토콜을 이용해서 서버에 무언가를 전달할때 사용하는 방식입니다.
01. GET
- 가져오는 것.
- URL (주소줄) 값에 ?뒤에 데이터가 Key, Value쌍으로 이어붙어서 보내집니다.
- ex) hamdi.tistory.con?id=seung&page=2&type=stts
- 위에서 본 ex와 같이 데이터가 여러개일때 &로 구분이 됩니다.
- URL에 데이터가 노출되어 보안에 취약합니다.
- 전송하는 길이에 제한이 있습니다.
- 데이터를 Header에 포함하여 전송합니다.
- URL에 이어 붙기때문에 길이제한이 있어서 많은양의 데이터는 보내기 어렵습니다.
- Select적인 성향. 서버에서 어떤 데이터를 가져와서 보여주는 용도로 많이 쓰입니다.
- HTTP/1.1 스팩인 RFC2616의 Section9.3에 따르면 GET은 서버로부터 정보를 조회하기 위해 설계된 메서드 입니다.
- GET은 요청을 전송할 때 필요한 데이터를 Body에 담지 않고, 쿼리 스트링을 통에 전송합니다.
- 캐싱(Caching)이 가능합니다.
02. POST
- 수행하는 것.
- URL에 데이터를 노출하지 않고 요청합니다.
- 서버의 값이나 상태를 바꾸기 위해 사용합니다.
- 글쓰기를 해서 글의 제목이나 내용이 DB에 저장되고 수정하면 DB에 수정이 됩니다. 이련경우 자주 사용.
- 데이터를 Body에 포함시킵니다.
- Body의 데이터를 설명하기 위해 Content-Tupe이라는 헤더필드가 들어갑니다.
- URL에 데이터가 노출되지 않아서 기본 보안은 되어있습니다.
- 전송하는 길이에 제한이 없습니다.
- 캐싱을 할 수 없습니다.
03. GET과 POST 차이점
- GET은 Idenpotent, POST는 Non-Idenpotent하게 설계되었습니다.
- Idenpotent란 수학이나 전산학에서 연산의 한 성질을 나타내는 것으로, 연산을 여러번 적용하더라도 결과가 달
라지지 않는 성질을 의미합니다.
- GET과 같은 경우 서버에게 동일한 요청을 여러번 전송하더라도 동일한 응답이 돌아와야 한다는 것을 의미합니다.
- 위와 같은 이유가 있으므로 주로 조회를 할때 많이 사용합니다.
- 웹페이지를 열어보거나, 게시글을 읽는 등 조회를 하는 행위로는 GET으로 요청하게 됩니다.
- POST와 같은 경우 서버에게 동일한 요청을 여러번 전송해도 응답은 항상 다를 수 있습니다.
- GET이 Select에 용도가 잘맞다면, POST는 insert, update, delete 용도에 잘 맞다고 볼 수 있습니다.
reference
https://mangkyu.tistory.com/17
https://blog.outsider.ne.kr/312
https://hongsii.github.io/2017/08/02/what-is-the-difference-get-and-post/
'프로그래밍언어 > 프로그래밍 기초' 카테고리의 다른 글
[메모리 공간] 코드, 데이터, 힙, 스택 (0) | 2023.09.08 |
---|---|
[프로그래밍기초] SSL 이란.. (0) | 2020.06.14 |
[프로그래밍 기초] Session과 Cookie의 차이 (0) | 2020.06.05 |
[프로그래밍 기초] Math 클래스의 반올림, 올림, 내림 등등의 내장함수. (0) | 2020.05.23 |