클라이언트가 서버로 요청을 보내느 방법인 HTTP Method에는 크게 2가지 방식이 있는데 GET과 POST이다.
GET 방식
get방식은 주소창에 ?뒤에 파라미터가 붙어서 데이터가 넘어간다.
- url에 정보가 담겨서 전송된다
- 데이터를 Header(헤더)에 포함하여 전송한다.
- 전송할 수 있는 정보의 길이가 제한되어 있다. (url의 길이에 제한이 있기 때문)
- 퍼머링크로 사용될 수 있다.
퍼머링트 (permanent link, permalink) :
어떠한 정보를 식별하는 고유한식별자,식별체계
블로그나 게시판, 포럼 등에 올려진 게시물에 어느 경우에나 연결될 수 있는 절대적인 위치의 불변 주소(URL).
GET방식으 간단한 데이터를 URL에 넣도록 설계된 방식으로 데이터를 보내는 양에 한계가 있다.
HTTP자체는 GET방식의 URL길이에 제한을 두고 있지 않지만
브라우저에서 최대 길이를 제한하고 있기 때문이다.
GET방식은 특별히 전송하는 데이터가 없으므로 body부분은 보통 빈 상태로 전송이 되며
header의 내용중 body의 데이터를 설명하는 Content-type 헤더필드도 들어가지 않는다.
GET방식은 캐싱을 이용해 속도를 높이거나 즐겨찾기를 편리하게 사용하기 위해 사용되는 경우가 많다.
( 캐싱이란 한번 접근 후 또 요청할 시 빠르게 접근하기 위해 레지스터에 데이처를 저장시켜 놓는것 이다. )
POST방식
데이터를 서버로 제출하여 추가 또는 수정하기 위해서 사용하는 방식이다. post방식은 주소창에 파라미터를 보이지 않고 데이터를 넘긴다.
- header의 body에 담겨서 전송된다
- URL 상에 전달한 정보가 표시되지 않는다
- GET에 비해 보안상 약간의 우의에 있다. (사실상 동일)
- 전송할 수 있는 데이터의 길이제한이 없다.
- 퍼머링크로 사용할 수 없다.
- 서버 쪽에 어떤 작업을 명령할 때 사용한다. (데이터의 기록, 삭제, 수정 등)
POST방식은 body에 데이터를 넣어서 전송한다.
따라서 header의 필드 중 body의 데이터를 설명하는 Content-Type이라는 헤더필드가 들어가고 어떤 데이터 타입인지 명시해주어야 한다.
데이터를 body에 포함시키는 이점 때문에 메세지 길이의 제한은 없지만
최대 요청을 받는 시간인 Time out이 존재하므로 클라이언트에서 페이지를 요청하고 기다리는 시간이 존재한다.
get은 가져오는것 post는 수행하는것
get은 데이터를 가져와 보여주는 용도
post는 서버의 값이나 상태를 바꾸기 위해서 사용
(더나아가면 restful? )
'개념정리' 카테고리의 다른 글
AS - IS / TO - BE 분석 (0) | 2021.04.09 |
---|---|
카멜케이스, 파스칼케이스, 스네이크케이스 (0) | 2021.04.07 |
[spring] Rest API (0) | 2021.04.06 |
[java] 접근 제한자 (0) | 2021.04.04 |
관점 지향 프로그래민(Aspect Oriented Programming , AOP) (0) | 2021.04.04 |