GET과 POST

hot_py 2020. 2. 11. 15:38

 

HTTP(hypertext transfer protocol)

서버와 클라이언트 사이에서 데이터를 주고 받기 위해 사용하는 프로토콜이다.  HTTP 프로토콜은 요청(request) / 응답(response)을 통해 데이터를 주고 받는다. 요청(request) 이란 클라이언트(사용자)가 포털사이트에 특정 키워드를 입력한 뒤 'Enter' 버튼을 누르면 서버에서 키워드에 대한 요청을 받아 요청에 대한 응답으로 클라이언트(사용자)에게 키워드에 대한 화면을 보여주게된다.

 

 

GET와 POST

두 방식은 HTTP프로토콜에서 서버에 요청을 하는 대표적인 메소드이다.

 

GET  

' ? ' 를 통해 주소(URL)와 구분한다.  '?'과 같이 이름과 값으로 쌍을 이루는 요청 파라미터를 쿼리스트링이라고 부른다,

'&' 파라미터가 여러개인 경우 '&'를 사용하여 연결한다. (구분자 역할을한다 )

GET 예시



POST

GET에서 URI에 포함시켰던 파라미터들을 메세지의 바디에 넣는다.

 

POST 예시

 

 

GET 방식

지정한 URI 의 정보를 가져오는 메소드로 많이 사용된다.

○ 많은 양의 데이터를 보내기 어렵다.(URI의 길이 제한 때문 255자)

○ 전달되는 데이터가 브라우저의 주소창에 노출된다.(보안 측면)

추가적인 파라미터를 서버로 보내는 경우에 사용된다.(주소창에 데이터가 노출되도 되는경우, 데이터의 양이 적은경우)

○ 클라이언트로부터의 데이터를 이름과 값이 결합된 String형태로 전달한다.

 

POST 방식

 리소스를 생성하는 용도로 많이 사용된다.

○ 추가적인 파라미터를 서버로 보내는 경우에 사용된다.

○ 클라이언트에서 서버로 데이터 전송시 인코딩하여 서버로 데이터를 전송한다.

    서버에서 클라이언트로 데이터 전송시 디코딩하여 데이터를  전송한다.

○ 전송 데이터의 양 제한이 없다.