HyperText Transfer Protocol: HTML과 같은 하이퍼미디어 문서를 전송하기 위한 애플리케이션 레이어 프로토콜(현재까지 HTTP 1.1의 규약을 사용)
- protocol (규약, 약속) : 컴퓨터 내부, 컴퓨터 사이에서 데이터의 교환 형식을 정의하는 규칙의 집합
HTTP method
응답 코드
클라이언트가 서버에 접속하여 어떠한 요청을 하면, 서버는 세 자리 수로 된 응답 코드와 함께 응답한다.
200 | ok |
---|---|
202 | accepted |
304 | not modified |
400 | bad request |
401 | unauthorized |
403 | forbidden |
404 | not found |
405 | nethod not allowed |
50* | error |
특징
- stateless : 클라이언트에서 요청을 보낸 후 서버에서 응답이 오면 연결을 끊는 connectionless 방식으로 동작한다.
- 이전 상태에 대해 알 수가 없어 쿠키 등을 통해 문제를 해결한다.
OSI 7 계층
네트워크 프로토콜이 통신하는 구조를 7계층으로 나누어 계층가나 상호작동하는 방식을 정해놓은 것.
특징
- 데이터 캡슐화 : 사용자 데이터가 각 계층 지날 때마다 자신의 계층 특성을 답을 정보를 헤더에 추가
다음은 상위 계층 부터 하위 계층을 순서대로 나열한 것이다.
계층 | 이름 | 단위 | 예시 | 프로토콜 |
---|---|---|---|---|
7 | application layer, 응용 계층 | data | 텔넷, 구글 크롬, 이메일 등 사용자가 실행하는 응용 프로그램 | HTTP,SSH 등 |
6 | presentation layer | data | 인코딩, 디코딩,암호화,복호화 | ASCII,MPEG,JPEG 등 |
5 | Session layer,세션 계층 | data | 두 컴퓨터 간의 대화나 세션을 관리, 포트 연결 | NetBIOS,SAP,PIPO 등 |
4 | transport layer,전송 계층 | TCP-segment,UDP-datagram | 특정 방화벽 및 프록시 서버 | TCP,UDP 등 |
3 | network layer,네트워크 계층 | packet | 라우터 | IP,IPX,IPsec 등 |
2 | datalink layer,데이터 링크 계층 | frame | mac 주소, 브릿지 및 스위치 | Ethernet,ALOHA 등 |
1 | physical layer,물리 계층 | bit | 전압,허브,네트워크 어댑터,중계기 및 케이블 사양, 신호변경 | 10BASE-T,wireless,wired 등 |
장점
- 통신이 일어나는 과정을 단계별로 파악할 수 있다.
- 장애가 발생했을 시 다른 단계의 장비나 소프트웨어를 건드리지 않고 문제를 해결할 수있다.
세션, 쿠키
HTTP의 stateless와 connectionless 특징으로 로그인과 같은 필요한 상태 정보를 유지 하기 위해서 사용되는 도구이다.
쿠키
웹사이트에 접속할 때 사용자의 브라우저에 저장되는 텍스트 파일로 HTTP 헤더에 포함되어 통신된다.
- 구성 요소: 이름, 값, 유효 기간, 도메인, 경로
- 보안성이 낮다.
- 제약 사항
- 하나의 쿠키는 4KB 저장 가능
- 한 도메인 당 20여개의 쿠키를 저장 가능
- 클라이언트에 300개의 쿠키를 저장 가능
- 서버 처리가 필요하지 않아 속도가 빠르다.
세션
웹 사이트의 여러 페이지에 걸쳐 사용되는 사용자 정보를 저장하는 방법으로 서버 측에서 관리된다. 사용자가 브라우저를 닫아 서버와의 연결을 끝내는 시점까지를 세션이라고 한다.
- 구성 요소 : 세션 ID, 생성 시간, 최근 접근 시간
- 쿠키보다 보안성이 높다 : 사용자 정보를 서버에 두기 때문->서버 메모리를 차지해 수가 많아질 경우 서버에 과부하를 줄 수 있다.
- 클라이언트가 서버 접속 시 세션 ID를 발급받음->쿠키로 세션 ID 저장-> 세션 ID를 함께 전달해 서버에 요청->서버는 세션 ID로 세션의 클라이언트 정보를 사용해 요청 처리, 응답
REST API
Representational State Transfer : 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미한다.
특정 기술을 의미하지 않는다. HTTP를 이용해 기계들이 통신할 때 HTTP의 잠재력을 최대한 활용할 수도록 하는 아키텍처
- 웹 통신 규약인 HTTP를 이용한다.
- API : 컴퓨터의 기능을 실행시키는 방법
구성
- 자원(resource) : URI를 통해 식별
- 행위(verb) : HTTP 메소드를 사용
- 표현(representations) : 자원의 특정 특정 시점의 상태를 반영하는 정보
결과를 알려줄 때 응답코드를 정확하게 작성
CRUD
- create 생성 : POST
- read 조회 : GET
- update 수정 : PUT/PATCH
- delete 삭제 : delete