HTTP

Fstone·2020년 9월 7일
0
post-thumbnail
post-custom-banner

Intro

Internet과 Web browser를 공부하면서 protocol을 자주 접했다. 물론 protocol이 client와 server 간 통신을 위해 정해진 규약, 약속이라 알고는 있었지만 간단하게라도 정리해야겠다 싶었다.

Protocol?

  • 단어 정의 :
  1. (외교적) 의례. 관습.
  2. 회의나 조약의 결정 내용을 적은 문서. 의정서, 원안, 회의록.
  3. 규약(規約)
  4. (컴퓨터) 프로토콜.
  • 사전 정의 :
    Computer 간 자원을 주고 받기 위해 교환 방식을 정의한 규칙 체계.

HTTP?

  • Web에서 이루어지는 모든 자원 교환의 기초 Web에서는 Client와 Server간 통신을 말할 수 있는데 Client가 정해진 규칙에 맞게 자원을 요청하면 (Request)
    Server는 정해진 규칙대로 요청이 왔는지 확인하고 제대로 왔으면 요청한 자원을 Client에 정해진 규칙에 따라 보내주고 아니라면 Error나 상태 code와 같은 Message로 요청이 잘못되었다라는 것을 Client에 알려준다.(Response).

HTTP 특징

  • 상태가 없다. (stateless)
  • 모든 자원은 서로 관련이 없이 독립적으로 다루어지지만 HTTP Cookie를 통하여 상태가 있는 Session을 만들도록 해준다.
  • 주로 HTML 문서를 주고 받는데 쓰이며, TCP/IP 기반으로 동작한다.
  • Request/Response 모두 Header와 Body로 이루어져 있다.
    굳이 표현하자면 이런 형태이다.
request ={
  header: {},
  body: {}
},
response ={
  header: {},
  body: {}
}
  • http 메시지의 시작 줄과 http 헤더를 묶어서 요청 헤드(head)라고 부르며, http 메시지의 페이로드 영역은 본문(body)이라고 합니다.

HTTP method

  1. GET : Server에 해당 자원 조회 요청. (Read)
  2. POST : Server에 해당 자원을 보낸다. (Update)
  3. PUT : Server에 해당 자원을 저장한다. (Create)
  4. DELETE: Server에 존재하는 해당 자원을 지운다. (Delete)

HTTP vs HTTPS

HTTP 와 HTTPS 모두 Client와 Server 통신을 위한 규약이다. 둘의 가장 큰 차이점은 이름에서도 볼수 있듯이 HTTP(Hypertext transfer protocol)에 데이터를 암호화된 연결을 가능하게 해주는 SSL(보안 소켓 계층)이 추가된 것이다. HTTP는 요청된 자원을 암호화하지 않아 만약 사용자가 로그인을 시도하고 중간에 누군가가 그걸 가로채면 로그인 정보가 그대로 노출이 되기 쉽다. HTTPS(Hypertext Transfer Protocol Secure)는 자원을 암호화하여 통신을 할 수 있게 도와준다.

Reference
https://developer.mozilla.org/ko/docs/Web/HTTP/Overview

https://joshua1988.github.io/web-development/http-part1/

https://developer.mozilla.org/ko/docs/Web/HTTP/Methods

https://developer.mozilla.org/ko/docs/Web/HTTP/Messages

https://developer.mozilla.org/ko/docs/Glossary/Protocol

https://www.w3.org/Protocols/rfc2616/rfc2616.html

post-custom-banner

0개의 댓글