2020.코딩일지

[HTTP/네트워크] HTTP Messages,Requests,Responses [BEB 6th]018일차 본문

WebServer&DB&CTI

[HTTP/네트워크] HTTP Messages,Requests,Responses [BEB 6th]018일차

개발하는라푼젤 2022. 7. 29. 10:32
728x90
코드스테이츠 블록체인 부트캠프 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 구문과 기저가 되는 전송 프로토콜 사이에 새로운 중간 단계가 추가 되었습니다. 

프로토콜을 자체적으로 수정하지 않고 이미 입증된 메커니즘을 바탕으로 이뤄낸 것입니다

 

GET요청일때는 body가없고 query로 요청함

MDN: HTTP메시지

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 (클라이언트가 인증되지 않은 상태에서 보호된 리소스를 요청했을때)
403 Forbidden (유저 인증상태와 관계없이 응답하고 싶지 않은 리소스를 클라이언트가 요청했을 때)
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

 

[HTTP/네트워크] REST API [BEB 6th]

코드스테이츠 블록체인 부트캠프 6기 웹 어플리케이션에서는 HTTP메소드를 이용해 서버와 통신한다. (GET으로 요청하고 POST로 새로운글,데이터전송 DELETE로 삭제) REST API란, 2개이상의 서비스가 인

waytogo-anne.tistory.com

 

Comments