사용자가 홈페이지로 이동하기 위해 URL을 입력하면 서버 내부에서는 사용자의 요청에 응답하기 위해 처리 해주어야 된다. 이 때 사용자가 서버로 요청을 보내는 방식인 대표적인 HTTP Method에는 GET방식과 POST 방식이 있다.
HTTP Method란?
사용자가 서버의 요청의 목적 및 종류를 알리는 수단이다. 종류로는 GET,POST,PUT,DELETE 등이 있디.
GET
- 어떠한 정보를 가져와 데이터를 조회하기 위해 사용되는 방식이다.
- 쿼리 스트링(QueryString)통해 전달하기 때문에 주소창에 전달 값이 노출된다.
-- 쿼리 스트링(QueryString)이란?
- URL 뒤에 전달하는 파라미터이다.
- URL + ? + 데이터 이름=값 형태로 표현된다.
- 데이터가 노출되기 때문에 보안이 취약해 중요한 정보를 다루면 안 된다.
- URL 길이가 제한이 있기 때문에 전송 데이터 양이 한정 되어 있다.
- 불필요한 요청을 제한하기 위해 요청이 캐시될 수 있다.
- 브라우저에 기록이 남는다.
(레지스터 : CPU가 요청을 처리하는데 필요한 데이터를 일시적으로 저장하는 다목적 공간이다.)- URL 형식에 맞지 않는 파라미터 이름이나 값은 인코딩하여 전달해야 된다.
0( '/', '&', '=' 등의 문자를 값으로 사용할 땐 인코딩해서 요청해야 된다.)- 멱등(idempotent)한다.
POST
- 사용자가 서버로 데이터를 전송해 리소스를 추가하거나 생성하기 위해사용 되는 Method이다.
- URL에 데이터를 노출하지 않고 요청한다.
(하지만 개발자 도구를 통해 요청 내용을 확일 할 수 있기 때문에 민감한 정보는 암호화 하여 전송해야 된다.)- 전송해야 될 데이터를 HTTP 메세지의 Body에 담아서 전송하기 때문에 HTTP 메세지에 Body가 존재한다.
- 요청 헤더의 Content-Type에 콘텐츠 타입을 명시한다.
-- Content-Type란?
- 보내는 자원의 형식을 명시하기 위해 헤더에 실리는 정보이다.
- Content-Type에 따라 데이터를 받는 측에서 데이터를 어떻게 처리해야 될지 판단한다.
- 캐시되지 않는다.
- 브라우저 기록에 남지 않는다.
- 데이터들을 Body에 담기 때문에 길이에 대한 제한이 없다.
- 멱등(idempotent)하지 않는다.
캐시(Cashe)란
멱등(idempotent)이란?
GET 방식의 사용
- 검색기능 : 사용자가 검색어를 입력하면 서버에서 요청을 받아 처리 후 검색 결과를 브라우저에 보여준다.
- 페이지 이동 : 브라우저에서 다른 브라우저로 페이지 이동시 사용한다.
- 쿠키와 같은 작은 데이터 전송 시
POST 방식의 사용
- 회원가입,로그인
(사용자가 입력한 회원 정보를 서버로 전송하여 처리한다.)- 게시글 작성: 사용자가 입력한 내용을 서버에 전송하여 작성한다.
- 파일 업로드 : 사용자가 업로드한 파일을 서버에 전송하여 저장한다.
GET | POST | |
---|---|---|
데이터 전달 | 쿼리스트링 | HTTP BODY |
데이터 길이 | URL 길이에 제한이 있다.(2048자 이하) | HTTP 요청 본문 크기에 제한이 있다.(2GB이하) |
캐싱 | 브라우저에서 자동으로 캐싱된다. | 브라우저에서 캐싱되지 않는다. |
보안성 | 낮다. | 높다. |
북마크 | 가능. | 불가능. |
HTTP 응답코드 | 200 | 201 |
--200 : 서버가 요청을 성공적으로 처리했을 경우
--201 : 요청이 성공적이었으며 새로운 리소스가 생성 되었을 때
🙇 참고 사이트 🙇
https://dev-coco.tistory.com/60 https://backendcode.tistory.com/230 https://cherry-forest.tistory.com/26