본문 바로가기
대학공부/인터넷 프로토콜

WWW와 HTTP

by 진진리 2024. 5. 31.
728x90

구조

  • WWW는 분산 클라이언트/서버 서비스
  • 브라우저를 사용하는 클라이언트가 서버를 이용하여 서비스를 제공
  • 제공되는 서비스는 사이트라는 여러 장소에 분산
  • 각 사이트는 웹 페이지라는 하나 이상의 문서를 관리
  • 각 웹 페이지는 동일한 사이트 또는 다른 사이트에 있는 웹 페이지들에 대한 링크를 포함
  • 하이퍼미디어와 하이퍼텍스트
    • 하이퍼텍스트: 다른 문서를 참조하여 문서를 생성
      • 텍스트 일부가 다른 문서의 링크로 정의
    • 하이퍼미디어: 다른 문자 문서나 사진, 비디오, 소리 등을 포함하는 문서의 링크를 갖는 문서
  • 웹 클라이언트
    • 브라우저는 제어기(controller), 클라이언트 프로토콜, 해석기(interpreter)로 구성
  • 웹 서버
  • URL
    • HTTP는 자원 위치지정자라는 개념을 사용
    • 인터넷에서 모든 종류의 정보를 지정할 수 있는 표준
    • '프로토콜;//호스트(도메인 이름):포트/경로(파일 경로)'

 

웹 문서

  • 정적 문서
    • 저장된 내용이 고정되어 있는 문서
    • 클라이언트는 문서의 복사본만 얻을 수 있음
  • 동적 문서
    • 브라우저가 문서를 요청할 때마다 웹 서버에 의해 생성
    • 클라이언트는 문서의 복사본만 얻을 수 있음
    • 웹 서버는 동적 문서를 만드는 응용 프로그램이나 스크립트를 수행
    • jsp, asp, php 등
  • 공통 게이트웨이 인터페이스(CGI) -> 현재 잘 사용 x
  • 액티브 문서
  • 자바 애플릿
  • 자바 스크립트
    • 검증용
    • PC 브라우저에서 동작하기 때문에 보안 취약점이 있음

HTTP

  • 인터넷의 핵심 프로토콜
  • 세션층에 위치하는 프로토콜
  • 웹 브라우저와 웹 서버가 요청과 응답을 주고 받으며 HTML 형식의 웹 페이지를 보여줌

 

  • HTTP 트랜잭션
    • TCP를 이용하지만 상태가 존재하지 않는(stateless) 프로토콜
    • 클라이언트는 요청 메시지를 보내어 트랜잭션을 초기화
    • 서버는 응답 메시지를 보내어 응답

  • 요청 메시지
    • 요청 라인: 공백 문자에 의해 분리된 세 개의 필드
      • 메소드, URL, 버전
      • CR과 LF 문자가 라인을 종료
    • 헤더 라인: 서버로 추가 정보를 전송

GET, POST 주로 사용

  • 응답 메시지
    • 상태 라인: 상태 코드와 상태 문구로 표현
    • 응답 헤더 라인: 클라이언트로 추가적인 정보를 전송

404(브라우저 오류), 500(서버 오류) 자주 발생

  • 조건부 요청

  • 영속성
    • HTTP 버전 1.0: 비영속적 연결
      • 각 요청/응답에 대해 하나의 TCP 연결이 만들어진다.
    • HTTP 버전 1.1: 영속적 연결
      • 서버는 응답을 전송한 후에 이후의 요청을 위해 연결을 열어놓은 상태로 유지
      • 서버는 클라이언트 요청이 있거나 타임아웃이 되면 연결을 닫을 수 있음
  • 쿠키
    • 웹의 stateless로 인해 필요, 인증 목적을 달성하기 위해 사용
    • 쿠키 생성과 저장
      • 클라이언트로부터 요청을 받았을 때 클라이언트에 관한 정보를 파일이나 문자열로 저장
      • 서버는 클라이언트에게 보내는 응답에 쿠키를 포함
      • 브라우저는 쿠키를 도메인 서버 이름으로 정렬되는 쿠키 디렉터리에 저장

  • 웹 캐싱
    • HTTP는 프록시 서버(중계 서버)를 지원
    • 프록시 서버는 최신 요청에 대한 응답의 복사본을 가지고 있음
    • 프록시 서버는 캐시를 검사
    • 프록시 서버는 적절한 서버로 요청을 보냄
    • 프록시 서버는 주로 암호화하는 데 사용
  • HTTP 보안
    • HTTP는 SSL(445) 위에서 수행
    • HTTPS는 데이터의 무결성과 기밀성, 인증을 제공
  • HTTP 헤더 이름

'대학공부 > 인터넷 프로토콜' 카테고리의 다른 글

NAT  (0) 2024.06.07
Routing  (0) 2024.06.07
TCP  (0) 2024.05.31
UDP  (0) 2024.05.24
DNS  (0) 2024.05.24