2020.코딩일지
[HTTP/네트워크] HTTP Messages,Requests,Responses [BEB 6th]018일차 본문
[HTTP/네트워크] HTTP Messages,Requests,Responses [BEB 6th]018일차
개발하는라푼젤 2022. 7. 29. 10:32코드스테이츠 블록체인 부트캠프 6기
2Tier Architecture
클라이언트: 리소스를 사용하는 앱 (결제기능, 상품조회기능 등)
서버 : 리소스가 존재하는 곳 (상품목록)
+ DB 추가시 (3Tier)
요청이 있어야 응답이 온다.
API란(Application Programming Interface)? 메뉴판! 리소스를 활용할 수 있도록 인터페이스 제공.
(그냥막 요청하면안되고 양식에따라) 서버는 리소스 전달을 위한 메뉴판 API문서를 작성해야 클라이언트가 활용가능하다.
+ Query String으로 파라미터 추가가능 (물음표? 앤드& 기호)
프로토콜이란(Protocol)? 통신규약, 즉 약속 = HTTP (외계어로는 주문불가)
인터넷에 있는 데이터를 요청할 때에는 HTTP프로토콜을 사용하여, 주소(URL, URI)를 통해 접근할 수 있다.
HTTP란, HyperText Transfer Protocol
HTML과 같은 문서를 전송하기 위한 Application Layer 프로토콜.
HTTP는 웹브라우저와 웹서버의 소통을 위해 디자인 됨.(양식에맞춰 요청을 보내면 양식에맞춰 응답함)
HTTP는 특정 상태를 유지하지 않는 특징이 있다!!! **Stateless 무상태성**
HTTP는 특정상태를 담고있지않으며 이전요청이나 다음요청을 기억하지 않음.
클라이언트에서 발생한 모든 상태(로그인-상품클릭-상세화면이동-카트에담고)를 HTTP통신이 추적하지 않는다.
카드에 담긴 정보를 저장하려면 다른방법(쿠키-세션, API등)을 통해 다뤄야함
HTTP messages란, 클라이언트와 서버 사이에서 데이터가 교환되는 방식. (아래 2가지의 메서드 타입이 있다)
•요청(Reauests)
•응답(Responses)
<MDN결론> HTTP 메시지는 HTTP에서 핵심적인 역할을 합니다.
메시지 구조는 단순하게 이루어져 있으며, 확장성도 매우 좋습니다.
HTTP/2 프레이밍 메커니즘 덕분에 HTTP/1.x 구문과 기저가 되는 전송 프로토콜 사이에 새로운 중간 단계가 추가 되었습니다.
프로토콜을 자체적으로 수정하지 않고 이미 입증된 메커니즘을 바탕으로 이뤄낸 것입니다
MDN: HTTP요청메서드 GET,HEAD,POST,PUT,PATCH,DELETE
MDN: HTTP상태코드 status / / / /
1xx:hold on | ||
2xx:here you go | Success | 200 OK 클라이언트의 요청을 정상적으로 수행함 201 클라이언트가 어떠한 리소스 생성을 요청, 해당 리소스가 성공적으로 생성됨! (POST를 통한생성작업시) |
3xx:go away | Redirect | 301 Moved Permanently (클라이언트가 요청한 리소스에 대한 URI가 변경되었을 때) 302 Found |
4xx:you scerewed | Client errors | 400 Bad Request 401 (클라이언트가 인증되지 않은 상태에서 보호된 리소스를 요청했을때) 404 Not Found (클라이언트의 요청이 부적절한 경우) 405 (클라이언트가 요청한 리소스에서는 사용 불가능한 Method를 이용했을 경우) |
5xx:I screwed up | Server errors | 500 Internal Server Error (서버에 문제가 있을 경우) 502 Bad Gateway |
...더 자세한설명은 캡쳐로 생략한다....
OPTIONS | ||
C | POST(새로운글,데이터전송) | 요청마다 새로운 리소스 생성 |
R | GET(데이터를받기만-리소스표시요청) (GET메소드는 body를 가지지 않기 때문에, query parameter를 사용하여 필요한 리소스를 전달한다) HEAD(응답을 요구하지만 본문은없다.) |
서버의 데이터를 변화시기키 않는 요청 |
U | PUT(리소스 수정) "교체" PATCH 수정의용도. |
요청마다 같은 리소스 반환 idempotent멱등성의 차이 |
D | DELETE | |
idempotent멱등하다 (매 요청마다 같은 리소스를 반환하는 특징) ex)POST, PUT
POST는 요청마자 새로운 리소스를 생성하고
PUT은 요청마다 같은 리소스를 반환한다*멱등하다고한다* ..... REST API부분에서 발췌. 구분해서 사용하라.
🤸♀️Advanced
MDN: `Content-Type` MIME Type 이란, 클라이언트에게 전송된 문서의 다양성을 알려주기 위한 메커니즘.
NAVER D2: 브라우저는 어떻게 동작하는가?
➣이스라엘 개발자 탈리 가르시엘(Tali Garsiel)이 html5rocks.com에 게시한 "How Browsers Work: Behind the scenes of modern web browsers"를 번역한 글로 어마무시하게 길다ㅏㅏㅏ
하지만 번역해주셔서 감사하다는 마음으로 읽겠습니닷!
REST API (Representational State Transfer)
https://waytogo-anne.tistory.com/236
'WebServer&DB&CTI' 카테고리의 다른 글
basic-server(2)express로 refactoring / nodemon을써보자 (0) | 2022.08.05 |
---|---|
basic-server(1) (0) | 2022.08.05 |
express 미들웨어 작동원리이해하기 (0) | 2022.08.05 |
[HTTP/네트워크] REST API [BEB 6th] (0) | 2022.07.29 |
[HTTP/네트워크] 브라우저의 작동원리(보이는곳:AJAX,SSR과CSR,CORS) [BEB 6th] (0) | 2022.07.29 |