기존 HTTP 동작 방식을 이해하고 있었고, 백엔드 개발자와 소통 과정에서 만들어진 API를 문서를 통해 잘 사용할 수는 있었다. 그런데 서버 개발을 시작하면서 API를 구현할 때, GET으로 구현 후 header로 받을지 POST를 통해 body로 받을지 어떤 것이 더 효율적이며 좋은지를 구분할 수 없었기에 배움이 필요하다고 생각했다.
그래서 배달의 민족 기술이사인 김영한 님의 "모든 개발자를 위한 HTTP 웹 기본 지식"을 수강하기로 했다.
총 강의는 340분(6시간 40분)이며, 8월 10일~11일 중으로 강의를 끝내고 만들던 API 구현을 마무리할 생각이다.
참고로 저자는 Java+SpringBoot가 아닌 Python+Django를 사용해서 백엔드를 구현하고 있다.
강의를 시작하며
해당 강의는 API로 GET, POST, PUT 등 어떤 HTTP method를 제공할지를 설계하는 백엔드 개발자에게 도움이 될 것이다.
강의 소개와 순서
1. 인터넷 네트워크: HTTP도 결국 TCP/IP 혹은 UDP 기반 위에서 동작하기 때문에 기본적인 네트워크에 대한 지식이 필요하다.
- 해당 복잡한 인터넷 망에서 데이터가 어떻게 흐르는지
- 프로토콜 계층들은 어떻게 되는지
- TCP/IP의 개념과 3 way handshake 개념
- DNS
2. URI와 웹 브라우저 요청 흐름
- URI? URL? URN?
- HTTP 메세지 전송, 웹 브라우저 동작방식을 세부적으로 이루어 지는지
(HTTP method가 어떻게 만들어지고, 이게 어떻게 TCP/IP에 감싸지고 메세지가 넘어가는지)
- 패킷의 동작방식(웹 브라우저 HTML Rendering)
3. HTTP 기본
- HTTP 특징
- Stateless, Stateful에 대해 자세히!!!
- 지속연결
- HTTP 메세지 형태
4. HTTP Method
- 무작정 API URI 설계 (URI: Uniform Resource Identifier): 왜 필요한지 알기위해
(어떤 문제가 있고, method를 통해 무엇을 해결할 수 있는지)
- 종류 (GET, POST, PUT, PATCH, DELETE)
- Method Property(안전, 멱등, 캐시가능)
5. HTTP 메서드 활용
- Query parameter 조회
- HTML Form에 데이터 전송, API로 데이터 전송
- HTTP API 설계 예시
- 이론과 실무에서 생기는 한계의 극복
6. HTTP 상태코드
- 2xx
- 3xx(리다이렉트, 리다이렉션 개념)
- 4xx(클라이언트 오류)
- 5xx(서버 오류)
7. HTTP Header
- 종류가 많아서, 어떤 기능이 있는데 이를 위해 이런 헤더들이 사용됨을 묶음 단위로 설명한다.
- 표현(Content)
- 협상(콘텐츠 네고시에이션-Accept)
- 전송 방식 설명
- Cookie Header
8. HTTP Header - Cache
- 캐시가 필요한 이유부터 쭉~설명
(일반적으로 사용하는 브라우저 캐시들이 왜 필요하고 어떤 메커니즘으로 동작하는지)
- 브라우저와 서버 사이에 캐시서버(Proxy Cache Server)가 존재할 수 있는데 이를 설명
- Cache를 어떻게 무효화 할 수 있는지 설명
'Server > HTTP' 카테고리의 다른 글
[HTTP] HTTP 메서드 활용 - 클라이언트에서 서버로 데이터 전송 (0) | 2022.08.11 |
---|---|
[HTTP] HTTP Method (0) | 2022.08.11 |
[HTTP] HTTP 기본 (0) | 2022.08.10 |
[HTTP] URI와 웹 브라우저 요청 흐름 (0) | 2022.08.10 |
[HTTP] 인터넷 네트워크 (0) | 2022.08.10 |