DecordRay
데이터 요청 방식(Get,Post) 본문
데이터를 요청하는 가장 대표적인 방식인 Get, Post에 대해 알아보자!
GET 방식
GET은 요청을 전송할 때 필요한 데이터를 Body에 담지 않고, 쿼리스트링을 통해 전송하는 방식
- 쿼리스트링 - URL의 끝에 ?와 함께 이름과 값으로 쌍을 이루는 요청 파라미터
- 쿼리스트링이 여러 개이면 &로 연결
- 쿼리스트링을 사용하게 되면 URL에 조회 조건을 표시하기 때문에 특정 페이지를 링크하거나 북마크할 수 있다.
쿼리스트링을 포함한 URL 예시
www.example-url.com/resources?name1=value1&name2=value2
여기서 요청 파라미터명은 name1, name2이고, 각각의 파라미터는 value1, value2라는 값으로 서버에 요청을 보낸다.
* TIP - GET 방식으로 요청 시 불필요한 요청을 제한하기 위해 요청이 캐시될 수 있다.
- GET을 통해 서버에 리소스를 요청할 때 웹 캐시가 요청을 가로채 서버로부터 리소스를 다시 다운로드하는 대신 리소스의 복사본을 반환한다. HTTP 헤더에서 cache-control 헤더를 통해 캐시 옵션을 지정할 수 있다.
js, css, 이미지 같은 정적 컨텐츠는 데이터양이 크고, 변경될 일이 적어서 반복해서 동일한 요청을 보낼 필요가 없기 때문에 정적 컨텐츠를 요청하고 나면 브라우저에서는 요청을 캐시해두고, 동일한 요청이 발생할 때 서버로 요청을 보내지 않고 캐시된 데이터를 사용하게 된다.
그래서 프론트엔드 개발을 하다보면 정적 컨텐츠가 캐시돼 컨텐츠를 변경해도 내용이 바뀌지 않는 경우가 종종 발생합니다.
이 때 해결방법 : 브라우저의 캐시를 지워주면 다시 컨텐츠를 조회하기 위해 서버로 요청을 보내게 된다.
POST 방식
POST는 리소스를 생성/변경하기 위해 설계되었기 때문에 GET과 달리 전송해야될 데이터를 HTTP 메세지의 Body에 담아서 전송한다. HTTP 메세지의 Body는 길이의 제한없이 데이터를 전송할 수 있다. 그래서 POST 요청은 GET과 달리 대용량 데이터를 전송할 수 있다.
POST는 데이터가 Body로 전송되고 내용이 눈에 보이지 않아 GET보다 보안적인 면에서 안전하다고 생각할 수 있지만, POST 요청도 크롬 개발자 도구, Fiddler와 같은 툴로 요청 내용을 확인할 수 있기 때문에 민감한 데이터의 경우에는 반드시 암호화해 전송해야 한다.
GET, POST 차이점 정리
Get
- Url에 데이터가 포함된다. -> 데이터가 노출(로그인 시 Get방식 활용하면 안됨!
비밀번호 다보여!!) - 길이 제한이 있다.
- 캐시가 가능하다.
- 브라우저 히스토리에 남는다.
Post
- Body 영역에 데이터가 포함된다. -> 데이터가 숨겨짐
- 길이 제한이 없다.
- 캐시되지 않는다.
- 브라우저 히스토리에 남지 않는다.
'공부 > 웹 크롤링' 카테고리의 다른 글
쿠키(Cookie), 세션(Session), 캐시(Cache) (0) | 2023.02.16 |
---|---|
HTTP 상태 코드 (0) | 2023.02.16 |
URL이란? (0) | 2023.02.16 |