
해당 글은 김영한님의 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의를 수강하고 정리한 게시글입니다. 현재 웹은 HTTP 기반으로 거의 모든 형태의 데이터(HTML, TEXT, 이미지, 영상등)를 주고 받는다. 이는 우리가 서버 공부를 하며 HTTP는 꼭 알고 있어야된다는 걸 의미한다. 앞으로 다룰 내용들은 HTTP에 대한 전반적인 지식이 필요함으로 다음을 참고하자. 참고 : [Network] 03. HTTP 기본 이제 실무에서 동작하는 웹 서버와 웹 애플리케이션을 알아보고 실무에서는 어떤 식으로 구성될지 알아보자. 웹 서버(Web Server) 웹서버는 HTTP 기반으로 동작하고 정적 리소스(HTML, CSS, JS, 이미지, 영상) 제공 및 기타 부가기능을 제공한다. 웹서버의 대..

해당 글은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의를 수강하고 정리한 게시글입니다. 캐시 기본 동작 캐시(cache, 문화어 : 캐쉬는 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용한다. 캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있다. 참고: 캐시 - 위키백과, 우리 모두의 백과사전 캐시의 기본 동작을 알기 위해 캐시가 없을 때와 있을 때의 예시를 알아보자 캐시가 없을 때 캐시가 없을 때 브라우저에서 star.jpg를 서버에 여러번 요청한다고 가정하자. [첫번째 요청] 처음 ..

해당 글은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의를 수강하고 정리한 게시글입니다. HTTP 헤더1 - 일반 헤더 HTTP 헤더는 전송에 필요한 모든 부가정보를 담고 있다. 예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등등.. 현재 표준 헤더는 양이 너무 많고 사용자가 필요 시 임의의 헤더 추가가 가능하다. 그럼으로 이번에는 자주 사용되는 일반적인 헤더들에 대해 알아보자. 참고 : List of HTTP header fields - Wikipedia 표현 헤더 HTTP BODY 예시 표현 헤더는 표현 데이터를 해석할 수 있는 정보를 제공한다. (표현은 요청이나 응답에서 전달할 실제 데이터이다.) 예) 데이터 ..

해당 글은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의를 수강하고 정리한 게시글입니다. HTTP 상태 코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 예시) 1xx (Informational): 요청이 수신되어 처리중 (잘 사용되지 않음) 2xx (Successful) : 요청 정상 처리 3xx (Redirection) : 요청을 완료하려면 추가 행동이 필요 4xx (Client Error) : 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 5xx (Server Error) : 서버 오류, 서버가 정상 요청을 처리하지 못함 만약 내가 모르는 상태 코드가 나타나면 앞에 백의 자리수를 보고 해석하자. 299 ??? -> 2xx 성공적.. 45..

해당 글은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의를 수강하고 정리한 게시글입니다. HTTP 메서드 활용 지난 [Network] 05. HTTP 메서드에서는 서버에서 클라이언트로 전송받을 때만 예시를 들었기 때문에 이번에는 클라이언트에서 서버로 데이터 전송과 HTTP 메서드를 어떻게 설계하는지 예시를 통해 알아보자. 클라이언트에서 서버로 데이터 전송 데이터 전달 방식은 크게 2가지이다. 1. 쿼리 파라미터를 통한 데이터 전송 GET 메서드나 정렬 필터(검색어)를 사용할 때 많이 사용한다. 예시: GET /search?q=hello&hl=ko 2. 메시지 바디를 통한 데이터 전송 POST, PUT, PATCH 메서드에서 회원 가입, 상품 주문, 리소스 등록, 리소스 변경시에..

해당 글은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의를 수강하고 정리한 게시글입니다. HTTP 메서드 이번에는 HTTP 메서드를 알아보고 어떤게 좋은 API URI인지 알아보자. 우리가 생각했을 때 코드의 이름처럼 행위들에 이름을 구분하기 쉽게 길게 짓는게 좋아보일 수 있다. [예시] : 회원 목록 조회 /read-member-list 회원 조회 /read-member-by-id 회원 등록 /create-member … 그러나, 위의 예시들은 좋은 URI 설계가 아니다. 그럼 어떻게 설계하는게 좋을까? 바로 리소스 식별방식으로 설계하는게 좋다. (URI는 리소스만 식별하도록) 그렇다면 리소스의 의미는 무엇일까? (회원을 등록하고 수정하고 조회하는 행위는 리소스가 아니다..)..

해당 글은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의를 수강하고 정리한 게시글입니다. HTTP 메시지 HTTP 메시지는 서버와 클라이언트 간에 데이터가 교환되는 방식이다. 메시지 타입으로는 요청과 응답이 있고 요청은 클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔 하는 메시지이고 응답은 요청에 대한 서버의 답변이다. 이제 예시와 함께 각 부분에 대해 알아보자. [예시] HTTP 메시지 구조는 위와 같고 공백 라인은 반드시 존재 해야한다. HTTP 요청 메시지의 예는 위와 같다. (요청 메시지도 body 본문을 가질 수 있다) HTTP 응답 메시지의 예는 위와 같다. 시작 라인(start-line) 요청 메시지 요청 메시지의 시작라인은 HTTP메서드 , 요청대상 , HT..

해당 글은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의를 수강하고 정리한 게시글입니다. HTTP 기본 HTTP(HyperText Transfer Protocol) : HyperText 전송용 프로토콜으로 말 그대로 하이퍼텍스트 - 위키백과, 우리 모두의 백과사전를 전송하기위한 프로토콜이지만, 현재는 HTML, TEXT, IMAGE, 음성, 영상등 거의 모든 형태의 데이터 전송이 가능하다.(서버간에 데이터를 주고 받을 때도 대부분 HTTP를 사용한다.) HTTP의 버전은 0.9, 1.0, 1.1, 2, 3이 있는데, 우리에게 가장 중요한 버전은 1.1이다. (2, 3이 더 최신버전이지만 1.1에서 성능 개선이 이루어진 것..) 기반 프로토콜 TCP: HTTP/1.1, HTTP/..