ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 웹 통신 간단 정리 2
    카테고리 없음 2021. 4. 6. 16:56
    반응형

    웹 통신 관련 간단한 이해를 한것을 순서대로 정리 2

    URI / HTTP / HTTP Request & Response 구조

    GET / POST / PUT / PATCH / DELETE 의미

    Response Message 200 / 300 / 400 / 500 의미

    Client & Server 방식 / Stateful vs Stateless

    Cookie / Cache / Cache Control / HTTP vs HTTPS

     

    아래 주소의 웹 통신 간단 정리 1 과 연결하여 보면 더 명확하다.

    wotres.tistory.com/entry/%EC%9B%B9-%ED%86%B5%EC%8B%A0-%EA%B0%84%EB%8B%A8-%EC%A0%95%EB%A6%AC-1

     

    웹 통신 간단 정리 1

    웹 통신 관련 간단한 이해를 한것을 순서대로 정리 Packet / Protocol / IP / TCP / DNS / Port 화면과 서버가 통신을 통해 데이터를 주고 받아야한다. 먼저 패킷: Packet 통신망을 통해 전송하기 쉽게 데이

    wotres.tistory.com

    화면과 서버가 통신을 통해 데이터를 주고 받아야한다.

    통신을 할때 주소를 보면 아래와 같이 명시되어 있다.

    https://wotres.tistory.com/manage/newpost/?type=post

    URI (Uniform Resource Idntifier)

    이는 인터넷에 있는 자원을 나타내는 주소를 뜻하며 

    위치를 기반으로 나타내는 URL 과 이름을 기반으로 나타내는 URN 이 있지만 

    주로 URL (Uniform Resource Location) 을 더 사용한다.

    이 표현 방법은 RFC 에서 정의되고 있다.

    명시하는 순서는 아래와 같다.

    간단히 어떤 방식으로(scheme) 어느 시스템(host:port)의 어디로 보낼지(path)와 무엇을 보낼지(query parameter)를 명시하였다라고 생각하면 된다.

    scheme://host:port/Path?queryParameter

    https://tistory.com:443/manage?q=hi

    보통 https 443 포트나 http 80 포트는 생략한다. 

     

    그리고 데이터를 서버가 위치하는 주소로 보내면 통신이 되는데 이 때 데이터를 약속한 양식대로 보내야한다.

    HTTP (Hyper text Transfer Protocol) 

    웹에서 이루어지는 데이터 교환 규칙을 말하며 이 규칙에 따라 클라이언트-서버 통신시에 데이터를 작성한다.

    HTTP 메시지에는 Text 가 들어갈수 도 있고 JSON 이 들어갈수도 있는등 다양한 형태의 데이터 전송이 가능하다.

    HTTP 구조

    http 구조는 요청과 응답으로 나뉘는데 공통적으로 시작줄 (start-line), 헤더 (header), 본문(body) 순서로 구성되며 각각을 간단히 설명하면 아래와 같다. 

    Request HTTP Start Line

    GET https://tistory.com:443/manage?q=hi HTTP/1.1

    위와 같이 

    HTTP 메서드 + 보내는 요청 주소 + HTTP 버전

    로 이뤄져 있으며 메소드는 아래와 같다. 

    GET / POST / PUT / PATCH / DELETE

    각각은 의미가 있는데 아래와 같다.

    GET : 데이터 조회

    POST : 데이터 등록 (요청 데이터 처리)

    PUT: 데이터 전체 수정

    PATCH: 데이터 부분 수정

    DELETE: 데이터 삭제

     

    Request HTTP Header

    HTTP 전송의 부가정보를 적음

    Mozilla/5.0

    위와 같이 어떤 브라우저를 사용하는지를 알려주는 user-agent 와 같은 정보가 담겨있다.

     

    Request HTTP Body

    마지막으로 한줄을 띄운 뒤 바디에는 요청 정보를 담아서 보낸다.

     

    응답하는 HTTP 양식은 아래와 같다.

    Response HTTP Start Line

    HTTP/1.1 200 OK

    버젼과 상태 메시지로 구성되어있다.

     

    Response HTTP Header

    데이터가 어떤 타입인지 등의 대략적인 정보를 나타낸다.

    Content-Type: text/html;

     

    Response HTTP Body

    요청에 대한 응답 정보를 담아 보낸다.

     

    Response start Line 에서 자주보이는 상태메시지는 아래와 같다.

    Response Message

    200 번대: 요청 성공함

    ex) 201 : 생성 성공

    300 번대: Redirection (추가 조치 필요)

    ex) 308 : 영구 Redirection / 307 : 일시적 Redirection 

    400: 클라이언트에서 뭔가 잘못해서 오류가 발생함

    ex) 400: 요청 구문 오류 / 401: 인증오류 (로그인 안됨) / 404: 리소스 찾을 수 없음(권한이나 잘못된 요청)

    500: 서버 내부에서 뭔가 잘못되어 오류가 발생함

    ex) 500: 서버 내부 문제 / 503: 일시적 서비스 이용불가(작업중 or 너무많은 요청으로 지연)

     

    Http 통신방식은 아래와 같다.

    Client & Server

    데이터 통신은 클라이언트에서 요청을 보내고 해당 요청에 대해 서버에서 응답을 하는 클라이언트 서버 방식이다.

    그리고 통신을 한번 할때마다 정보를 유지하는지와 유지하지 않는 지에 따라 2개로 구분된다.

     

    Stateful 방식 

    상태 유지를 하는 방식으로 보통 로그인에 따라 권한일 달라질 때 사용한다.

     

    Stateless 방식

    상태유지를 하지않는 방식으로 보통 로그인이 필요없는 페이지에 사용되며 

    이때의 장점으로 해당 정보를 계속 알고 있을 필요가 없으니 서버 증설이 유리하다라는 점이 있다.

    또한 너무 많은 사람 또는 요청이 동시에 서버에 접속할 경우 과부하가 걸릴수 있으니 

    데이터를 보낸뒤 연결을 끊을 때 에도 사용한다.

     

    그리고 통신을 할 때마다 로그인 아이디 등을 주고 받는것은 보안에도 좋지않고 비효율적이라 

    쿠키를 이용한다.

    Cookie

    웹브라우저의 쿠키 저장소에 데이터를 저장시켜놓은 뒤 이미 존재하는 쿠키를 정보인

    로그인 정보 (인증 토큰)등을 확인하여 사용할 수 있다.

     

    이와 비슷하게 이미 전송한 이미지와 같은 데이터를 계속 호출하는것 역시 비효율 적이라

    캐시를 이용한다.

    Cache

    브라우저 캐시를 이용하여 기존에 한번 호출되고 변경이 없는 파일의 경우 저장된 데이터를 재사용하여 효율을 높인다.

    이때 캐쉬는 max-age 와 같은 옵션으로 일정 시간 동안 유지 시키거나

    Last Modified 와 같은 옵션으로 변경 유무에 따라 재활용하는 방법

    그리고 Etag를 이용하여 변경될때 달라지는 태그 방식으로 동일 태그인지를 확인하여 변경이 있으면 재전송 하는 방법이 있다.

    또한

    Cache Control

    보안을 위해 캐쉬를 저장시키면 안되거나 검증이 필요한 경우가 있을 수 있는데 이때 cache control을 이용한다.

    항상 데이터를 검증하고 사용할때는 no-cache 옵션을, 

    저장하지않고 삭제할때는 no-store 옵션을 이용하여 보안을 유지한다.

     

    HTTP vs HTTPS

    마지막으로 HTTP 와 HTTPs 의 차이는 

    마지막 s 에서도 볼수 있듯이 Secure (보안) 의 차이이다.

    https 는 SSL(Secure Socket Layer) 즉, 보안 소켓 계층을 사용하여 서버와 브라우저 통신시에 조금 더 안전하게 암호화된 연결을 만들어 민감한 정보를 도난당하는 경우를 막아준다. 

    즉, https 가 http 에 비해 보안성이 좋다.

     

     

     

     

     

     

    반응형

    댓글

Designed by Tistory.