웹페이지와 웹서비스(웹 어플리케이션)의 차이


웹페이는 미리 만들어둔 정적인 HTML 파일로 응답

웹서비스는 서버 프로그램이 요청 내용에 따라 동적으로 HTML 데이터를 만들어 응답



GET 방식과 POST 방식


HTML 입력 폼을 통해 HTML 요청을 보낼 떄 주로 GET과 POST 방식의 요청이 사용


GET


입력폼의 내용이 요청행에 포함

GET/search?q=javablog HTTP/1.1


get방식으로 적은 양의 데이터만 전송 가능, 육안으로 데이터가 보여서 보안 취약

보통 정보를 요청하는데 쓰임


POST


입력 폼의 내용이 message body에 담겨서 전송

get방식에 비해 많은 양의 데이터 전송, get보다는 쉽게 노출되지 않음

하지만 보안 취약점 존재

정보를 저장하거나 변경할 때 주로 사용  --> 데이터의 암호화가 필요한 경우 HTTPS 프로토콜을 사용



AJAX


Asynchronous JavaScript and XML의 약자


기존의 웹 서비스의 응답 결과 표시 방식은 웹 페이지 전체를 다시 그려 갱신하는 방식


AJAX는 HTTP 메세지로 통신한다는 점에서는 일반적인 요청 방식과 비슷하지만, 

요청을 보내는 주체가 브라우저가 아닌 자바스크립트

웹 브라우저가  서버로 요청하는 것이 아니라, 자바스크립트로 작성된 프로그램이 웹 서버와 통신하고

응답 결과로 받은 내용을 웹브라저가 전체 페이지를 다시 갱신하는 것이 아니라, 

자바스크립트가 웹 페이지의 특정 부분에만 응답받은 내용이 갱신되도록 처리한다.


--> 그 결과로, 사용자는 전체 페이지를 다시 조회하지 않고, 서버의 응답을 바로 받을 수 있기 때문에

     자연스러운 상호작용이 가능하고 서비스의 사용성이 높아짐



세션을 유지하기 위한 쿠키


HTTP는 기본적으로 무상태(statless) 프로토콜이기 때문에 요청, 응답 과정에서 상태정보를 저장하지 않는다.

상태를 유지하면서 연속된 응답을 해야 할 때 쿠키라는 기술을 사용

여러 건의 요청 처리를 동일한 사용자 접속 세션으로 인식할 수 있도로 함


쿠키 정보를 방어하기 위한 방어책


기본적으로 웹브라우저가 자체적으로 구현하고 있음

쿠키가 생성된 웹 서버와 동일한 도메인을 사용하는 웹 사이트에만 쿠키가 전송되도록 제한

이미 저장된 쿠키가 있다면 유효기간을 확인


* 보안 문제가 생길만한 정보는 클라이언트 PC의 쿠키에 저장하지 말아야 한다. 

* 동일한 사용자인지 확인하기 위해 세션 ID같은 식별정보만 주로 클라이언트 쿠키에 저장하도록 제한

+ Recent posts