• Home
  • About
    • back
    • Monu Kim photo

      Monu Kim

      Strike while the iron is hot

    • Learn More
    • Email
    • Instagram
    • Github
  • Posts
    • back
    • All Posts
    • All Tags
    • All Categories
  • Projects

HTTP

13 Aug 2022

Reading time ~2 minutes

HyperText Transfer Protocol: HTML과 같은 하이퍼미디어 문서를 전송하기 위한 애플리케이션 레이어 프로토콜(현재까지 HTTP 1.1의 규약을 사용)

  • protocol (규약, 약속) : 컴퓨터 내부, 컴퓨터 사이에서 데이터의 교환 형식을 정의하는 규칙의 집합

HTTP method

응답 코드

클라이언트가 서버에 접속하여 어떠한 요청을 하면, 서버는 세 자리 수로 된 응답 코드와 함께 응답한다.

200 ok
202 accepted
304 not modified
400 bad request
401 unauthorized
403 forbidden
404 not found
405 nethod not allowed
50* error

특징

  • stateless : 클라이언트에서 요청을 보낸 후 서버에서 응답이 오면 연결을 끊는 connectionless 방식으로 동작한다.
    • 이전 상태에 대해 알 수가 없어 쿠키 등을 통해 문제를 해결한다.

OSI 7 계층

네트워크 프로토콜이 통신하는 구조를 7계층으로 나누어 계층가나 상호작동하는 방식을 정해놓은 것.

특징

  • 데이터 캡슐화 : 사용자 데이터가 각 계층 지날 때마다 자신의 계층 특성을 답을 정보를 헤더에 추가

다음은 상위 계층 부터 하위 계층을 순서대로 나열한 것이다.

계층 이름 단위 예시 프로토콜
7 application layer, 응용 계층 data 텔넷, 구글 크롬, 이메일 등 사용자가 실행하는 응용 프로그램 HTTP,SSH 등
6 presentation layer data 인코딩, 디코딩,암호화,복호화 ASCII,MPEG,JPEG 등
5 Session layer,세션 계층 data 두 컴퓨터 간의 대화나 세션을 관리, 포트 연결 NetBIOS,SAP,PIPO 등
4 transport layer,전송 계층 TCP-segment,UDP-datagram 특정 방화벽 및 프록시 서버 TCP,UDP 등
3 network layer,네트워크 계층 packet 라우터 IP,IPX,IPsec 등
2 datalink layer,데이터 링크 계층 frame mac 주소, 브릿지 및 스위치 Ethernet,ALOHA 등
1 physical layer,물리 계층 bit 전압,허브,네트워크 어댑터,중계기 및 케이블 사양, 신호변경 10BASE-T,wireless,wired 등

장점

  • 통신이 일어나는 과정을 단계별로 파악할 수 있다.
  • 장애가 발생했을 시 다른 단계의 장비나 소프트웨어를 건드리지 않고 문제를 해결할 수있다.

세션, 쿠키

HTTP의 stateless와 connectionless 특징으로 로그인과 같은 필요한 상태 정보를 유지 하기 위해서 사용되는 도구이다.

쿠키

웹사이트에 접속할 때 사용자의 브라우저에 저장되는 텍스트 파일로 HTTP 헤더에 포함되어 통신된다.

  • 구성 요소: 이름, 값, 유효 기간, 도메인, 경로
  • 보안성이 낮다.
  • 제약 사항
    • 하나의 쿠키는 4KB 저장 가능
    • 한 도메인 당 20여개의 쿠키를 저장 가능
    • 클라이언트에 300개의 쿠키를 저장 가능
  • 서버 처리가 필요하지 않아 속도가 빠르다.

세션

웹 사이트의 여러 페이지에 걸쳐 사용되는 사용자 정보를 저장하는 방법으로 서버 측에서 관리된다. 사용자가 브라우저를 닫아 서버와의 연결을 끝내는 시점까지를 세션이라고 한다.

  • 구성 요소 : 세션 ID, 생성 시간, 최근 접근 시간
  • 쿠키보다 보안성이 높다 : 사용자 정보를 서버에 두기 때문->서버 메모리를 차지해 수가 많아질 경우 서버에 과부하를 줄 수 있다.
  • 클라이언트가 서버 접속 시 세션 ID를 발급받음->쿠키로 세션 ID 저장-> 세션 ID를 함께 전달해 서버에 요청->서버는 세션 ID로 세션의 클라이언트 정보를 사용해 요청 처리, 응답

REST API

Representational State Transfer : 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미한다.

특정 기술을 의미하지 않는다. HTTP를 이용해 기계들이 통신할 때 HTTP의 잠재력을 최대한 활용할 수도록 하는 아키텍처

  • 웹 통신 규약인 HTTP를 이용한다.
  • API : 컴퓨터의 기능을 실행시키는 방법

구성

  • 자원(resource) : URI를 통해 식별
  • 행위(verb) : HTTP 메소드를 사용
  • 표현(representations) : 자원의 특정 특정 시점의 상태를 반영하는 정보

결과를 알려줄 때 응답코드를 정확하게 작성

CRUD

  • create 생성 : POST
  • read 조회 : GET
  • update 수정 : PUT/PATCH
  • delete 삭제 : delete


studyHTTP Share Tweet +1