😊
http basic
September 02, 2022
시작
읽기 전에 알면 좋은 내용:
- 클라이언트 서버 모델이란?
- 클라이언트 서버 모델은 서버가 데이터를 가지고 있고 클라이언트에서 데이터를 요청하면 서버에서 데이터를 넘겨 주는 방식의 모델이다
- 실제로는 통신할때 클라이언트와 서버 사이에 라우터, 모델과 같은 여러 컴퓨터들이 있지만 요런 것들은 network, transport layer에서 처리되고 HTTP는 application layer protocol이기 때문에 서버, 클라이언트 사이의 request와 response에 대해서만 알면된다
- 프로토콜이란?
- 프로토콜은 두 컴퓨터가 소통할떄 어떻게 소통할지 정해놓은 규칙이다. 예를들어 데이터를 어떤 형식으로 보낼 것인지 어떤 순서대로 보낼 것인지 등
요약
- 서버/클라이언트 모델 기반 프로토콜
- connectionless & stateless
- request, response 구조
- http request 상태 코드
http 특징
서버/클라이언트 모델 기반 프로토콜
- 어떤 종류의 데이터든 전송 가능
- connectionless & stateless
- connectionless = 클라이언트가 서버와 연결한 후 서버에서 response를 받으면 연결이 종료된다
- stateless = 클라이언트가 이전에 서버와 통신을 했었는지와 같은 이전 상태를 알 수 없기 때문에 stateless이다
- 새로운 기능을 쉽게 추가 할 수 있음
- HTTP 메시지는 human readable함
- 보통 TCP 프로토콜 위에서 사용됨 (클라이언트-서버간 reliabale한 통신이 필요하기 때문)
http 에서 제공되는 기능
- 문서 캐싱으로 동일한 문서 재요청 안할 수 있음
- cross origin (CORS) 요청 제한 (같은 웹 페이지에서만 해당 웹서버에서 제공되는 정보 접근 가능)
- Http Cookie를 사용해 특정 페이지를 특정한 유저에게 접근 제한할 수 있음
- proxy를 사용해 서버 IP 숨기기 (보안)
- HTTP cookie를 사용한 session 으로 클라이언트의 상태를 저장해 stateful 한 통신 가능
자주 사용되는 http method 종류
- GET (서버에서 데이터를 가져올때)
- POST (서버에 데이터를 보낼때)
- PUT (서버에 존재하는 데이터를 수정할때)
- PATCH (서버에 존재하는 데이터를 부분적으로 수정할때)
- DELETE (서버에 존재하는 데이터를 삭제할때)
request 구조
- method
- URI (요청하는 파일의 위치)
- http version
- header (클라이언트에 대한 정보)
- body (메소드에 따라 넣어주는 정보, payload라고도 부름)
response 구조
- http version
- status
- header (서버에 대한 정보)
- body (서버에서 주는 데이터 정보)
http request 상태 코드
- request가 제대로 처리 되었는지에 대한 상태를 알려줌
- 대략 아래와 같이 구분됨
- 1xx(정보) : 요청을 받았으며 프로세스를 계속 진행합니다.
- 2xx(성공) : 요청을 성공적으로 받았으며 인식했고 수용하였습니다.
- 3xx(리다이렉션) : 요청 완료를 위해 추가 작업 조치가 필요합니다.
- 4xx(클라이언트 오류) : 요청의 문법이 잘못되었거나 요청을 처리할 수 없습니다.
- 5xx(서버 오류) : 서버가 명백히 유효한 요청에 대한 충족을 실패했습니다.
- e.g. 200 이면 성공, 404면 요청한 페이지 찾을 수 없음
끝
😊