ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [HTTP] HTTP 정의, 메소드, 메세지
    Environment(개발환경)/Web 2020. 12. 24. 15:53
    반응형

    Wecode 세션이었지만, 중요한 개념이기도 하고 강의 중간중간 검색을 통해 내용을 보완해가면서 별도 포스팅을 하였다.


    🧐 HTTP란?

    웹 상에서 커뮤니케이션을 하는 통신규약. (개발자 도구 Network 탭에 표시됨)

    • HyperText : 문서와 문서가 링크로 연결되어 있음을 뜻함
    • Transfer : 전송하다(HTML 웹페이지 문서)
    • Protocol : 컴퓨터끼리 어떻게 주고받는지 대한 소통방식 또는 약속

    - HTTPS : SSL/TLS 의해 암호화된 데이터를 트랙스액션 (주민번호, 비밀번호 등 민감한 정보 교류에 유리함)

    • SSL(Secure Socket Layer, 보안 소켓 계층) : 웹페이지와 서버(혹은 서버간) 전송되는 데이터를 암호화하여 보안유지하는 표준기술
    • TLS(Transfer Layer Security, 전송 계층 보안) : SSL의 최신 및 상위호환 버전
    • 출처 : Digicert 공식 홈페이지

     

    - HTTP의 두가지 특징

     

    1) Request(요청) / Response(응답)

    • Request : 페이지 -> 서버
    • Response : 서버 -> 페이지

    2) Stateless, Connectionless : HTTP 통신(req/res)은 과거 HTTP 통신에 대한 내용을 전혀 알지 못함

    • 모든 트랜스엑션은 한 사이클에 끝나며, 바로 연결이 끊어진다.
    • 불특정 다수를 대상으로 하는 서비스에 효율적인 형태이다.
    • 기억되지 않는 단점을 보완하기 위해, 쿠키 / 세션 / 로컬 스토리지 에 반영구적으로 저장을 시키기도 한다.

    - HTTP2

    HTTP 1.1의 업그레이드 버전으로, 2015년에 출시되었다. 빠르고 효율적이며, secure 성질이 강해졌다.


    📧 Request / Response 메세지 구조

    Request, Response 는 일정한 형식을 가진 메세지로 트랜스액션 된다. 또한, 각 메세지에서 활용되는 메소드나 의미를 가진 코드가 있다.

     

    - Request 메세지 구조

    • Start Line : 메소드, 주소, 버전 -- POST /users/login/HTTP/1.1
    • Headers : 요청정보 -- Host(타겟 호스트), User-Agent(클라이언트 정보), Content-Length(body길이), Content-Type(body타입)
    • Body : 요청할 때 참고하는 데이터를 전송 -- { username: ~, password: ~ }

    * Request Methods

    1. GET: 서버로 부터 데이터를 받아오기만 할 때(접속해서 데이터 불러올 때)
    2. POST: 서버에 데이터를 생성하고자 할 때
    3. PUT: 서버의 데이터를 수정 위주로 요청할 때 (PATCH 도 있음)
    4. DELETE: 서버의 데이터를 삭제
    5. HEAD: 서버 리소스의 헤더(메타 데이터의 취득), 본문은 제외
    6. OPTIONS: 리소스가 지원하고 있는 메소드의 취득가능 여부 (Allow: GET, POST, HEAD)
    7. 이외 TRACE(경로), CONNECT(중간서버) 등의 메소드가 있다.

     

     

    - Response 메세지 구조

    • Status Line : 버전, status code, status text -- HTTP/1.1 200 OK
    • Headers : Request의 Headers와 동일하다.
    • Body : 응답의 실제 데이터를 포함하는 부분 -- { token: ~ }

    * Status Code 종류

    • 200 : 200(OK), 201(Created - 새로 생성됨)
    • 400 : 400(요청 body 자료형식 오류), 401(권한 없음), 403(forbidden, 금지된 요청), 404(not found) 등등..
    • 500 : 서버 사이드 문제이다.

    이번주 세션들이 공통적인 것 같다. HTTP는 특히 개발공부 전부터 url에서 자주 보아왔던 구문이었고, 대충 프로토콜이라는 점은 알았다.

    이 규약이 어떠한 내용을 의미하는지, 규약의 메신저(req, res)와 메세지 형식까지 공부하면서 종종 접한 403, 404 에러의 의미도 깨우쳤다.

     

    출처 : rosewwross 님의 블로그 (https://velog.io/@rosewwross/Http-and-Request-and-Response-hok6exbnfb)

     

    반응형
Designed by Tistory.