HTTP 7

HTTP 헤더2 캐시와 조건부 요청 / 프록시 캐시 (HTTP 김영한)

이번 시간에는 캐시에 대해서 알아보겠습니다. 먼저 캐시가 없는 초기 GET 요청부터 순차적으로 살펴보겠습니다. 초기 GET 요청을 통해 서버로 부터 star.jpg 라는 이미지 파일을 받아옵니다. 이때 star.jpg를 받기 위한 http 메시지의 크기는 헤더의 크기 0.1M / 바디의 크기는 1.0M 입니다. star.jpg에 대한 실질적인 내용은 바디에 담겨있기 때문에, 바디의 크기가 더 클 수 밖에 없습니다. 그렇게 되면, 브라우저는 서버에서 보낸 star.jpg에 대한 http 메시지를 받아 렌더링하고 이미지를 인식합니다. 이후 브라우저(클라이언트)가 다시 star.jpg를 다운로드 받아 사용해야할 일이 있어, 요청을 또 보냅니다. 캐시의 역할은 지금부터 나타납니다. 만약 캐시의 개념이 없는 경우..

HTTP 2024.01.08

HTTP 헤더 (http 김영한)

이번시간에는 HTTP의 헤더에 대해서 알아보겠습니다. HTTP 헤더 -HTTP전송에 필요한 모든 부가정보 (메시지 바디 내용/ 바디 크기/ 압축/ 인증 / 요청 클라이언트/ 서버 정보 등등) 포함. -표준 헤더도 많고 필요시 임의로 헤더 추가 기능도 있습니다. 과거의 HTTP 헤더를 먼저 살펴보면 General 헤더 : 메시지 전체에 적용되는 정보 (요청/응답 관계없이) Request 헤더 : 요청 정보 Response 헤더 : 응답 정보 Entity 헤더: 엔티티 바디 정보 (엔티티 본문(메시지 바디)를 해석할 수 있는 정보=> 데이터 유형/길이, 압축정보) 하지만 RFC2616 표준에서 2014년 RFC7230~7235 표준이 등장함에 따라 달라진 점이 있습니다. Entity(엔티티) -> Repre..

HTTP 2024.01.07

HTTP 상태코드 (http 김영한)

저번 시간에 공부한 http 메서드에 이어 http 상태코드에 대해 알아보자. 웹 페이지 개발을 조금이라도 건들여 본 사람이라면 프론트엔드와 백엔드 연동 시, 상태코드에 대해 접해본 적이 있을 것이다. 클라이언트 측에서 HTTP 요청 메시지를 보내면 , 서버에서 요청에 대한 처리를 하고 클라이언트에게 결과 응답 메시지를 보내준다. 이 경우 응답메시지 시작 부분에 200 과 같은 상태코드가 나타나는데 , 이 상태코드에 대해서 알고 있어야 제대로 처리가 되었는지, 오류가 발생했는지 오류가 발생했다면 무슨 오류인지 알 수 있다. 크게 다음 5개의 상태코드로 나타낼 수 있다 1xx (informational): 요청이 수신되어 처리 중인 상태. 2xx (Successful) : 요청 정상 처리 3xx (Redi..

HTTP 2024.01.07

HTTP API 설계 (GET/POST/PUT/PATCH/DELETE) (김영한 HTTP)

API를 설계할 때 가장 중요한 것은? 리소스 식별 ! 회원 목록 조회 / 회원 조회/ 등록/ 수정 /삭제의 예시를 통해서 공부 리소스란 무엇일까? 예를 들어서. "회원가입을 한다"라고 할때, 회원가입을 하는 것 자체가 리소스가 아니다. 여기서 리소스는 "회원"이다. 때문에 "회원"을 중점적으로 설계해야한다. 또한 이러한 회원은 조회/삭제/등록/수정 할 때 모두 사용되므로 복수단어로 사용하는게 좋다 (이때 "회원"과 같이 상위에 있는 개념은 컬렉션이라고 한다) ex) /create-member (X) ---> /members/{id} (O) 즉, 리소스와 해당 리소스를 대상으로 하는 행위를 분리시키는 것이 중요하다 ->리소스: 회원 ->행위: 조회,등록,삭제,수정 그럼 의문이 하나 생긴다. 조회/등록/삭..

HTTP 2024.01.06

HTTP 서버 (김영한 HTTP)

*공부한 내용을 복습하기 위해 작성한 내용이며, 중간에 옳지 않은 내용이 포함될 수 있음.* 전 시간에 URL을 통한 통신과정을 보며 HTTP 요청 메시지를 주고받는 모습을 볼 수 있었다, 오늘은 HTTP 메시지에 대해서 알아보자. HTTP 메시지에는 정말 많은 것을 담을 수 있다. HTML , TEXT IMAGE, 음성, 영상 파일 JSON, XML (API) 위의 형식 등등 서버간에 데이터를 주고받을 때 대부분 HTTP를 사용한다. HTTP에도 발전 역사가 존재하는데, 그 중 HTTP는 HTTP/1.1 버전으로 가장 중요한 버전이다. (그 외에도 HTTP/2 , HTTP/3 버전이 있는데 HTTP/1.1을 베이스로 성능개선한 버전이다.) TCP / UDP에 대해서도 전 시간에 배웠었는데 HTTP 1...

HTTP 2024.01.06

HTTP URI/URL/URN (김영한 http)

*공부한 내용을 복습하기 위해 작성한 내용이며, 중간에 옳지 않은 내용이 포함될 수 있음.* URI (Uniform Resource Identifier) 번역하면 "통합 자원 식별자" 입니다. URL이라는 용어는 흔하게 들어봤지만 URI 또는 URN은 들어보지 못했을 수 있습니다. URI는 로케이터 (Location), 이름(Name) 또는 둘 다 추가로 분류될 수 있다. 다시 말하면 "URI (자원 식별자)를 URL(위치)로 분류할 것이냐 (URN) 이름으로 분류할 것이냐. " 의 차이 -이름으로 분류하면 URN -위치로 분류하면 URL URL과 URN은 각각 위 이미지와 같은 방법으로 리소스를 식별하는데, URN의 경우 정확한 리소스 식별도 어렵고 찾기도 어렵기 때문에 대부분의 경우 URL의 방법을 ..

HTTP 2024.01.06

HTTP 인터넷 통신 (김영한 http)

*공부한 내용을 복습하기 위해 작성한 내용이며, 중간에 옳지 않은 내용이 포함될 수 있음.* 인터넷에서 컴퓨터 둘은 어떻게 통신을 할까? 클라이언트와 서버간의 상호작용을 통해서, 클라이언트가 원하는 내용을 서버에서 받아오기도 하고 반대로 클라이언트가 작성한 내용을 서버에 저장하기도 한다. 우리는 흔히 인터넷이라는 용어를 사용하며, 클라이언트와 서버간의 통신을 이야기한다. 하지만 이 인터넷이라고 하는 중간 단계는 눈에 보이지 않는 수많은 노드들로 이루어져있고, 단순히 서버까지 가는 경로에도 우리가 알지 못하는 많은 노드들을 거쳐서 정보들이 이동된다. (물론, 그 노드들이 어떻게 흐르는지는 알 필요 없다...) IP 인터넷 프로토콜 그 중에서도 먼저 많이 들어봤을 법한 "IP"를 이용한 통신 방법이 있다. ..

HTTP 2024.01.06