반응형

GET

GET 메소드는 클라이언트에서 서버로 어떠한 리소스로 부터 정보를 요청하기 위해 사용되는 메소드

즉, 데이터를 읽거나, 검색 할때 사용되는 method로 예를 들면 게시판의 게시물을 조회할 때 사용된다.

GET은 요청을 전송할 때 URL 주소 끝에 파라미터로 포함되어 전송되며 이 부분을 Query String(쿼리스트링) 이라 부른다.

GET Method는 오로지 데이터를 읽을 때만 사용되며 수정할 때는 사용하지 않는다.

URL 예시) www.example.com?name1=john&name2=mount

GET 특징

  • GET 요청은 캐시가 가능하다.
  • GET 요청은 브라우저 히스토리에 남는다.
  • 파라미터에 내용이 노출되기 때문에 민감한 데이터를 다룰 때 GET 요청을 사용해서는 안된다.
  • GET 요청은 데이터 길이에 대한 제한이 있다.

POST

POST 메소드는 클라이언트에서 서버로 리소스를 생성/업데이트 하기 위해 데이터를 보내는데 사용되는 메소드

GET과 달리 POST는 전송할 데이터를 HTTP 메세지 Body에 담아서 전송한다.

그리고 Body의 타입은 요청 헤더의 Content-Type에 따라 결정된다

HTTP 메세지의 Body는 길이의 제한 없이 데이터를 전송할 수 있다. 그래서 POST 요청은 GET과 달리 대용량 데이터를 전송할 수 있다.

URL 예시) www.example.com

POST 특징

  • POST 요청은 캐시되지 않는다.
  • POST 요청은 브라우저 히스토리에 남지 않는다.
  • POST 요청은 데이터 길이에 제한이 없다.

GET / POST 차이점

  • 사용 목적:
    • GET 메소드 : 서버의 리소스에서 데이터를 요청할 떄 (SELECT)
    • POST 메소드: 서버의 리소스를 새로 생성하거나 업데이트 할 때 사용 (CREATE)
  • Body 유무:
    • GET: URL 파라미터에 요청하는 데이터를 담아 보내기 때문에 HTTP 메시지에 Body가 없다
    • POST: Body에 데이터를 담아 보내기 때문에 HTTP 메시지에 Body가 존재
  • Idempotent (멱등성):
    • GET 요청은 멱등이며, POST는 아니다

Idempotent(멱등성)

  • Idempotent (멱등)의 수학적 개념은 다음과 같다
    • GET은 리소스를 조회한다는 점에서 여러 번 요청하더라도 응답이 똑같다.
    • POST는 서버에게 동일한 요청을 여러 번 전송해도 응답은 항상 다를 수 있다.(Non-Idempotent)
  • → 수학이나 전산학에서 연산의 한 성질을 나타내는 것으로, 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질
    GET 과 POST는 이와 같이 큰 차이가 있기에 적절한 용도에 맞게 사용해야 합니다.

참조 페이지 : [https://velog.io/@songyouhyun/Get과-Post의-차이를-아시나요]

 

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

 

 

반응형

'프로그래밍 > Web Program' 카테고리의 다른 글

쿠키(Cookie)와 세션(Session)  (0) 2021.04.30
CSS 적용하는 방법  (0) 2020.09.28
Substitution  (0) 2020.02.24
Output Cache (출력캐시)  (0) 2018.07.26
반응형

쿠키와 세션 사용 이유

 쿠키와 세션의 이해를 돕기 위해 HTTP 특징을 먼저 살펴보겠습니다.

 HTTP 프로토콜의 특징

  1. Connectionless(비연결지향)

     HTTP는 사용자가 Request(요청)를 서버에 보내면 서버는 클라이언트에게 Response를 주고 연결이 끊기는 특성이 있습니다.

 

  2. Stateless(상태없음)

     커넥션이 끊기는 순간 클라이언트와 서버의 통신은 완전 종료가 되며 상태 정보는 유지하지 않는 특성이 있습니다.

 

위와 같은 특징을 갖고 있기 때문에 서버의 리소스 낭비가 줄어드는 장점을 가지고 있지만, 이로 인하여 통신을 할때마다 서버는 클라이언트가 누구인지 인증을 계속해야 합니다. 즉, 로그인 후에 페이지를 이동하면 다시 로그인을 해야하는 상황이 발생할 수 있습니다.

하지만 위와 같은 Connetionless(비연결지향)Stateless(상태없음)를 보완해주며 서버가 클라이언트를 식별하게 해주는 것이 쿠키와 세션입니다.


쿠키(Cookie)

쿠키란, 사용자가 웹 사이트에 방문하였을때, 해당 사이트 서버에서 사용자의 컴퓨터(클라이언트 로컬)에 저장하는 작은 기록 정보 파일이며, HTTP에서 필요시 저장한 해당 정보(쿠키)를 참조하거나 재사용하여 사용합니다.

 

1. 쿠키는 클라이언트(브라우저) 로컬에 저장되며 (Key, Value) 형태로 구성되어 있습니다.

2. 쿠키는 사용자 인증이 유효한 시간을 명시 할 수 있으며, 유효 시간을 지정하면 브라우저를 끄더라도 인증이 유지되는 특징이 있습니다.

3. Response Header에 Set-Cookie 속성 사용하여 클라이언트에 쿠키를 만들 수 있습니다.

4. 클라이언트에 총 300개의 쿠키를 저장할 수 있습니다.

5. 하나의 도메인 당 20개의 쿠키를 가질 수 있습니다.

 

세션 쿠키 (Session Cookie) 와 지속 쿠키(Persistent Cookie)

세션 쿠키(Sesstion Cookie)란, 만료 날짜/시간을 지정한 쿠키를 말합니다.

세션 쿠키는 브라우저 메모리에 저장되므로 브라우저가 종료되면 쿠키는 사라지게 됩니다.

 

지속 쿠키(Persistent Cookie)란, 만료 날짜/시간을 지정하지 않아 항상 유지하는것으로 판단되는 쿠키를 말합니다.

지속 쿠키는 파일로 저장되므로 브라우저가 종료되어도 쿠키는 계속 남게 됩니다.

 

쿠키의 동작방식

1. 클라이언트가 브라우저에 접속하여 페이지를 Request(요청)

2. 서버에서 쿠키를 생성하여 HTTP에 쿠키를 포함하여 Response(응답)

3. 클라이언트가 서버에 재요청 시 응답 받은 쿠키 정보도 같이 HTTP 헤더에 담아서 Request(요청)

4. 서버에서 쿠키를 읽어 상태 정보를 변경할 필요가 있으면 쿠키를 업데이트하여 HTTP 헤더에 포함하여 Response(응답)

 

쿠키 사용 예제

1. ID 저장, 로그인 상태 유지

2. "오늘 더 이상 이 창을 보지않음" 체크

3. 쇼핑몰 사이트 장바구니


세션(Session)

쿠키를 기반하고 있지만, 사용자 정보 파일을 브라우저(클라이언트 로컬)에 저장하는 쿠키와 달리 서버 측에서 관리합니다.

 

1. 서버에서는 클라이언트를 구분하기 위해 세션 ID를 부여하며 웹 브라우저가 서버에 접속해서 브라우저를 종료할 때까지 인증상태를 유지합니다.

2. 클라이언트가 Request(요청)을 보내면, 해당 서버 엔진이 클라이언트에게 유일한 세션ID 값을 부여한다.

3. 사용자에 대한 정보를 서버에 저장하기에 쿠키보다 보안이 좋습니다.

4. 사용자가 많아질수록 서버 메모리를 많이 차지하게 됩니다.

 

세션의 동작방식

1. 클라이언트가 브라우저에 접속하여 페이지를 Request(요청)

2. 서버에서 세션에 클라이언트에 대한 데이터를 저장하고 이를 알 수 있는 세션ID를 생성하여 쿠키에 세션ID를 포함하여 Reponse(응답).

3. 클라이언트가 서버에 재요청 시 세션ID가 포함된 쿠키 정보도 같이 HTTP 헤덩 담아서 Requst(요청) 

4. 서버에서 세션ID가 포함된 쿠키 값을 읽어 세션ID의 상태 파악 처리 후 Request(응답)

결과적으로, 세션을 통해 클라이언트의 정보는 서버에 두고 세션 아이디를 이용해서 인증받고 정보를 이용하는 방식입니다.

 

세션 사용 예제

1. 로그인 정보 유지

 

 

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

 

반응형

'프로그래밍 > Web Program' 카테고리의 다른 글

GET / POST  (0) 2022.03.05
CSS 적용하는 방법  (0) 2020.09.28
Substitution  (0) 2020.02.24
Output Cache (출력캐시)  (0) 2018.07.26
반응형
라리가 겨울 이적시장 오피셜 현황2

안녕하세요 하단 링크에서 무사 뎀벨레, 루카 요비치 등

프리메라리가 겨울 이적시장 오피셜 현황 2편을 확인 하실 수 있으십니다.

 

blog.naver.com/purplelondon/222207535670

 

[La Liga / 라리가 겨울 이적시장 오피셜 현황2]

La Liga겨울이적시장 오피셜 현황*La Liga 모든구단의 이적 및 재계약 내용을 겨울이적시장이 끝날때까...

blog.naver.com

 

반응형
반응형
[프리미어리그 BIG6 역대 겨울이적시장 최고의 영입]

첼시, 아스날, 맨체스터 유나이티드 등 EPL BIG 6 역대 겨울이적시장에서 뽑은 최고의 영입을 확인 할 수 있습니다.

 

blog.naver.com/purplelondon/222202157470

 

[프리미어리그 BIG6 역대 겨울이적시장 최고의 영입]

빅6 역대 겨울이적시장 최고의 영입​Pierre Emerick Aubameyang피에르 에메릭 오바메양 이적시기 2018...

blog.naver.com

 

반응형
반응형
EPL 프리미어리그 토트넘의 겨울 이적시장 주요 링크

아래 블로그에서 토트넘은 겨울 이적시장에 

디에고 코스타, 자비처, 벤화이트의 링크를 확인 해보았는데요

과연 해당 선수들이 토트넘에 합류할 수 있을지 기대 됩니다.

 

토트넘 외 EPL 프리미어리그 BIG6 겨울 이적시장 주요 링크 선수들을 확인할 수 있습니다.

 

blog.naver.com/purplelondon/222192225978

 

[EPL 프리미어리그 BIG6 겨울 이적시장 주요 링크] 토트넘 홋스퍼 FC

토트넘 홋스퍼 FC 20-21시즌 겨울 이적시장 주요 링크1. Diego Costa아틀레티코 마드리드가 공격수 디...

blog.naver.com

 

반응형

+ Recent posts