Home Http
Post
Cancel

Http

HTTP (Hypertext Transfer Protocol)

  • HyperText(HyperMedia)를 클라이언트와 서버 사이에 주고 받을 수있게 정의한 프로토콜
  • TCP/IP 프로토콜 위에서 동작하는 Text Based 프로토콜

WWW (World Wide Web)

  • 웹 브라우저가 웹서버의 HTML로 기술된 리소스를 URL를 통해 요청하여 HTTP 프로토콜을 사용하여 받아서 표현하는 것

URL (Uniform Resource Locator)

  • 통일된 웹 자원의 위치 지정 방법
  • 작성법: <스킴>://<사용자이름>:<비밀번호>@<호스트>:<포트>/<경로>;<파라미터>?<질의>#<프레그먼트>

    <스킴> : https, http, ftp, file

    <호스트> : www.google.com (= 프로토콜)

    <경로> : /project/to

    <질의> : member=1

HyperText (HyperMedia)

  • 즉시 다른 텍스트 레퍼런스에 접근가능
  • 이미지 외 기타 표현가능한 컨텐츠를 포함

요청 첫 줄

<메서드> <요청 URL> <버전> GET /welcome.html HTTP/1.1

메서드

  • GET
  • POST
  • HEAD
  • OPTIONS
  • PUT
  • DELETE

요청 URL

  • /welcome.html

응답 첫 줄

<버전> <상태 코드> <사유 구절> HTTP/1.0 200 OK

상태코드

  • 1xx: 정보 제공
  • 2xx: 성공
  • 3xx: 리다이렉션
  • 4xx: 클라이언트의 오류
  • 5xx: 서버의 오류
  • 참고문헌
  • 서버가 클라이언트에 붙여둔 일종의 스티커(?)
  • 서버가 클라이언트에게 쿠키를 세팅 요청(Set-Cookie:) 하면 (스티커를 붙이면),
  • 클라이언트는 이후 서버에게 보내는 요청 헤더에 쿠키(Cookie: )를 표시해서 전송 (스티커를 붙인 채 다시 돌아와야 함)

쿠키 종류

  • 세션 쿠키 (Session Cookie)
    • 사용자가 브라우저를 사용하는 동안만 유효함.
    • 브라우저는 사용자가 브라우저를 사용하는 동안 Cookie 정보를 서버로 전달
  • 지속 쿠키 (Persistent Cookie)
    • 사용자가 브라우저를 종료하더라도 유지되는 쿠키
    • Expires 혹은 Max-Age가 같이 설정되는 쿠키

쿠키 동작 방법

쿠키의 위험성

  • 로그인 관련 정보를 쿠키에만 넣어둔다면?
  • set-Cookie: id=”userId”
  • Cookie: id=”userId”
  • 사용자가 Cookie의 값을 임의로 변경하면 다른 사용자가 될수있다.

세션 (Session)

  • 사용자 접속 시점에 임의의 세션ID를 발급
    • 세션 ID만으로는 사용자 개인 정보를 추측해 낼 수 없는 형태여야 함.
  • 해당 세션 ID를 키로 하여 서버 저장소에 필요한 정보를 저장.

HTTPS(HTTP over SSL/TLS)

대칭키 암호화 알고리즘 (Symmetric Encryption Algorithm)

  • “암호화에 사용하는 키”와 “복호화에 사용하는 키”가 같은 알고리즘
  • 예)
    • DES (Data Encryption Standard)
    • AES (Adavanced Encryption Standard)
  • 암복호화 성능이 좋은 특징이 있음

키 교환 알고리즘

  • 키 합의 (key Agreement) - DH (Diffie-Hellman)
  • 키 전송 (Key Transport) - RSA
This post is licensed under CC BY 4.0 by the author.