Front-End

vsoghlv@naver.com

자바스크립트 서버에 요청하기 get 과 post

클라이언트에서 서버로 요청시, 보내는 데이터를 HTTP 패킷이라고 한다. HTTP 패킷은 크게 헤더와 바디로 이루어져있는데, 헤더에는 클라이언트 정보등이 들어있고 바디는 비어있다. 이때 바디에도 특정 데이터를 담아 서버에 요청이 가능하다.

GET 방식

클라이언트가 서버에 요청하는 경우, 예를 들어 로그인을 하는 경우 로그인 정보를 서버에 보낸다고 가정해보자. 이때 GET 방식을 쓰는 경우 URL 뒤에 붙여서 보낸다.

www.ex.com?id=aaa&pw=1111

URL 뒤에 물음표를 붙인 후 키값 (ex. id, pw) 과 value 를 넣어서 보낸다. &은 여러개의 값을 보내는 경우 구분하기 위한 구분자이다. GET 방식의 경우 값이 URL에 보이기 때문에 POST 형식에 비해 보안이 안좋은 편이다. 물론 값을 보낼 때는 항상 암호화를 해서 보내주는 것이 중요하다. 또한 속도의 경우 POST 방식에 비해 빠른데 GET 방식의 요청은 캐시를 저장해두기 때문에 조금 더 빠르게 응답이 가능하다.

POST 방식

POST 방식은 GET 방식과 달리 바디에 데이터를 넣어보내는데 이때 요청 헤더의 Content-Type 에 데이터 타입을 명시해줘야한다. 데이터 타입을 표시하지 않는다면 서버는 내용이나 URL 에 포함된 리소스 확장자명등으로 데이터 타입을 유추하는데 만약 데이터 타입을 알 수 없다면 application/octet-stream 타입으로 요청을 처리한다. POST 방식의 경우 GET 방식과는 달리 길이의 제한없이 데이터를 보내는 것이 가능하다. 즉, 대용량 데이터를 보내는 것이 가능하다. 또한 보안적인 측면에서도 조금 더 좋은 편이다.