안드로이드 코틀린 (220101 전기뱀장어 버젼)
TCP와 UDP OSI 7계층에서 전송계층Transport layer에 속하는 데이터 전송 프로토콜입니다. 여기선 필요한 것만 살펴보고 깊게는 들어가지 않습니다. 데이터가 반드시 전달되는 것을 보장하는 프로토콜로 다음 특징들을 갖는다.
Contents
Cookie
쿠키란 클라이언트의 웹 브라우저에 저장되는 작은 데이터 조각으로 서버가 클라이언트의 요청을 식별하는데 사용됩니다. 쿠키를 활용해서 사용자를 구분하는게 아주 유용하지만, 클라이언트가 수정할 수도 있고 해커가 탈취할 수도 있기에 보안에 취약합니다. 따라서, 아이디 및 비밀번호와 같은 민감한 정보들을 저장하는데 사용하지는 않고 아래와 같은 목적으로 사용합니다.
HOLBHead Of Line Blocking
HTTP 요청을 할 때는 요청을 하고 나서 응답이 와야 다음 요청을 할 수 있었으나 HTTP1.1에 들어오면서 파이프라이닝Pipelining 기법을 통해 응답을 받지 않고도 여러개의 요청을 꾸쭌히 할 수 있게 되었습니다. 하지만 이 그리고 처음의 요청에 대한 응답이 오래 걸리는 경우, 그 다음 응답까지의 시간이 지연되는 현상이 발생합니다. 이렇게 파이프라이닝 기법은 심각한 이슈를 안고 있었으며 이를 Head of Line Blocking 문제라고 부른다.
URI는 리소스를 표현해야 합니다.
이 때 Collection은 복수 를 사용함을 주의하자. 리소스 명은 동사가 아닌 명사를 사용해야 합니다.
/students/1리소스는 Collection과 Document로 보여줄 수 있어요. locationsseoulschools3
여기서 locations 는 Collection을, seoul 은 Document를 표현합니다.
그 리소스에 대한 행위는 HTTP의 Method로 표현해야 합니다.
DELETE students1 GET은 리소스를 조회합니다. (학생 목록 조회)
GET students
POST는 리소스를 생성합니다. 학생 생성
POST /studentsPUT은 리소스를 업데이트합니다.
CORSCrossOrigin Resource Sharing
HTTP 헤더를 사용하여 클라이언트와 서버로 하여금 서로에 대하여 느끼고 한 출처에서 다른 출처의 자원을 사용할 수 있게 하는 메커니즘입니다. 클라이언트가 서버에 HTTP 요청을 보낼 때 HTTP 헤더의 Origin 속성에 자동으로 값이 할당됩니다. Origin httpcompany.com
이 도메인에서 다른 의 자원을 사용하기 위해 ajax 요청을 했다고 하면 SOP 정책 때문에 에러가 발생합니다.
따라서 이를 해결하기 위해, 서버의 HTTP 응답 헤더에 다음과 같이 요청을 자유롭게하는 도메인을 명시합니다.
URLUniform Resource Locator
해당 위치에서 어떻게 리소스를 얻어낼 것인가에 대한 정보를 포함합니다. 현재 내가 거주하고 있는 기숙사를 대학교라고 가정한다면, 그 주소는 다음과 같이 쓸 수 있어요. 경북 포항시 북구 흥해읍 한동로 558, 한동대학교 벧엘관 303호 여기서 이 방에 나 혼자 산다면 나라는 자원에 대한 하나의 지시자가 됩니다. 그리고 이는 내가 거주하고 있다는 것을 간접적으로 알려주기 때문에 식별의 역할도 하고 있습니다.
하지만 룸메이트가 오게 되면 나라는 자원을 오직 지시하는 기준은 달라지게 됩니다. 따라서, 자원의 위치가 바뀔 수 있다고 할 수 있는 것입니다. 이런 문제점은 URN의 출현을 야기시켰다.
CSRFCross Site Request Forgery, 사이트간 요청변조
저장 XSS : 웹사이트에 취약점이 있는 웹 서버에 스크립트를 저장시켜서 해당 웹사이트를 요청하는 사용자로 하여금 스크립트를 실행하게 하는 기법입니다. 반사 XSS : 검색을 사용할 때 결과가 없으면 브라우저에서 입력한 값을 문서에 포함하여 응답하는데 이를 사용하여 스크립트를 실행하는 기법으로 악성 URL을 배포하여 클릭하도록 유도하는 방법을 사용합니다.
DOM 기반 XSS 공격 스크립트가 DOM 생성의 일부로 실행되면서 공격하는 기법으로 반사 XSS와 비슷하게 악성 URL을 배포하여 클릭하도록 유도합니다.
자주 묻는 질문
Cookie
쿠키란 클라이언트의 웹 브라우저에 저장되는 작은 데이터 조각으로 서버가 클라이언트의 요청을 식별하는데 사용됩니다. 구체적인 내용은 본문을 참고하시기 바랍니다.
HOLBHead Of Line
HTTP 요청을 할 때는 요청을 하고 나서 응답이 와야 다음 요청을 할 수 있었으나 HTTP1. 구체적인 내용은 본문을 참고하시기 바랍니다.
URI는 리소스를 표현해야
이 때 Collection은 복수 를 사용함을 주의하자. 구체적인 내용은 본문을 참고 해주시기 바랍니다.