HTTP Method
HTTP Method는 크게 Get 방식과 Post 방식이 있다.
*HTTP : 웹상에서 클라이언트와 서버 간에 Request(요청)/Response(응답)으로 데이터를 주고 받을 수 있는 프로토콜
Get
서버로 어떠한 리소스로 부터 정보를 얻기(Get)위해 사용하는 방식
Get은 데이터를 읽을 때만 사용하고 데이터를 수정하지 않는다.
어떠한 정보를 누구나 볼 수 있게 url에 적어서 보내는 방식이다.
url에 적어서 보낼때 쿼리스트링(QueryString)을 사용한다.
Get은 한번 전송할 때, 보낼 수 있는 데이터 양이 정해져있어서 많은 양의 데이터를 보내지 못한다.
쿼리스트링(QueryString)
www.example-url.com/resources?name1=value1&name2=value2
위와 같은 구조를 갖는다.
'변수1=값&변수2=값&...' 이 반복된다.
변수들 사이의 연결은 '&'를 사용한다.
ex) 쿠팡 url
https://www.coupang.com/np/search?minPrice=1000&maxPrice=100000&page=1
최소값 = 1000
최대값 = 100000
페이지 = 1
이러한 데이터들은 숨겨져야하는 데이터가 아니기 때문에 누가봐도 상관이 없다.
특징
- 캐시될 수 있음 : HTTP 헤더에서 cache-control 헤더를 통해 캐시 옵션을 지정할 수 있음.
- 브라우저 기록에 남음
- 북마크에 추가할 수 있음
- 데이터 길이에 제한이 있음 : 브라우저마다 다름
- 민감한 데이터를 보내면 안됨
- idempotent : 동일한 요청에 응답이 항상 같음. 따라서, 조회할 때 많이 사용(조회).
*캐싱 : 한번 접근한 후 또 요청할 때, 레지스터에 데이터를 저장시켜 놓아서 빠르게 접근하는 것.
Post
서버에 데이터를 보내서 리소스를 생성하고 업데이트하기 위해 사용하는 방식
전송해야할 데이터를 HTTP 메시지의 Body에 실어서 전송한다.
파일 업로드를 할 수 있고, 게시판에 글을 쓸 수 있다. 암호화가 된 개인정보를 보낼 수도 있다.
Get보다는 안전하지만, 개발자 도구와 같은 툴로 내용을 확인할 수 있기 때문에 반드시 암호화가 필요하다.
특징
- 캐시되지 않음
- 브라우저 기록에 남지 않음
- 북마크에 추가할 수 없음
- 데이터 길이의 제한이 없음
- not idempotent : 동일한 요청에 응답이 달라질 수 있음. 서버의 상태나 데이터를 변경할 때 주로 사용(수행).
Get과 Post의 차이점
사용목적 : GET은 서버의 리소스에서 데이터를 요청할 때, POST는 서버의 리소스를 생성하거나 업데이트 할 때 사용
보내는 방식 : GET은 url에 쿼리스트링을 담아서 전송, POST는 HTTP 메세지의 Body에 담아서 전송
Idempotent : Get is idempotent, Post is not idempotent
참고
https://opentechlabs.blogspot.com/2014/10/difference-between-post-get.html
'Software > Python' 카테고리의 다른 글
[웹스크래핑] Beautifulsoup4 활용 3 - 다음 영화 (0) | 2023.01.24 |
---|---|
[웹스크래핑] Beautifulsoup4 활용 2 - 쿠팡 (0) | 2023.01.24 |
[웹스크래핑] Beautifulsoup4 활용 1 - 네이버 웹툰 (0) | 2023.01.17 |
[웹스크래핑] Beautifulsoup4 기본 (0) | 2023.01.15 |
[웹스크래핑] User Agent - 나를 차단한 웹페이지 접속하기 (0) | 2023.01.15 |
댓글