HTTP/모든 개발자를 위한 HTTP 웹 기본 지식

HTTP/모든 개발자를 위한 HTTP 웹 기본 지식

HTTP 헤더 - 일반헤더

모든 개발자를 위한 HTTP 웹 기본 지식 을 듣고 정리한 내용이며 모든 그림 예제는 해당 강의에서 가져온 내용입니다. 용도 HTTP 전송에 필요한 모든 부가정보들을 담는 곳 표현 헤더는 표현 데이터를 해석할 수 있는 정보를 제공한다(데이터 유형,데이터길이, 압축 정보 등등) 표현(전송, 응답 둘다 사용) Content-Type: 표현 데이터의 형식 미디어 타입, 문자 인코딩 (text/html; charset=utf-8) Content-Encoding: 표현 데이터의 압축 방식 표현 데이터를 압축하기 위해 사용 (gzip,identity) Content-Language: 표현 데이터의 자연 언어 표현 데이터의 자연 언어를 표현(ko,en,en-US) Content-Length: 표현 데이터의 길이 바이..

HTTP/모든 개발자를 위한 HTTP 웹 기본 지식

HTTP 상태코드

클라이언트가 서버에게 요청을 보내면 서버는 요청을 처리하고 처리상태를 클라이언트에게 제공해준다. HTTP 응답 상태 코드는 다음과 같다. 1xx(조건부 응답) - 요청을 받았으며 요청을 처리중 (거의 사용되지 않는다.) 2xx(성공) - 클라이언트가 요청한 동작을 수신하여 성공적으로 처리했음 3xx(리다이렉션 완료) - 요청을 완료하려면 추가행동이 필요함 4xx(요청 오류) - 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수없음 5xx(서버오류) - 서버오류, 서버가 정상요청을 처리하지 못함 만약 구체적인 상태코드타입(405)을 알지 못한다면 해당하는 상위 상태코드(4xx)로 해석하여 처리하면된다. 2xx - (성공) 200 OK - 클라이언트가 요청한 행동을 처리 후 응답하는 상태코드 20..

HTTP/모든 개발자를 위한 HTTP 웹 기본 지식

HTTP 메소드 활용

/members/1 (삭제) /members (리스트 조회) /members/1 (삭제) /members/1 (조회) 앞서 URI 에는 자원만을 표현 행위는 HTTP 메서드로 구분한다고 하였다. 이번에는 이론적인 내용이아닌 Spring을 이용하여 예제 코드를 만들어보자. (본문 길이상 Controller 를 제외한 나머지 코드는 생략하겠습니다. 나머지 코드 보기) 회원 저장(/members) 새로운 리소스나 프로세스를 진행할 때에는 POST Method를 사용한다고 하였다. 그렇다면 POST /member 형식으로 컨트롤러를 만들면 된다. @RestController @RequestMapping("/members") @RequiredArgsConstructor public class SimpleContr..

HTTP/모든 개발자를 위한 HTTP 웹 기본 지식

HTTP 메서드

HTTP API를 만들어보자 웹 개발자라면 한 번쯤은 RESTful API이라는 문구를 보았을 것이다. REST API의 이해가 왜 중요한가? 또는 왜 필요할까?라는 생각이 든다. (REST 규칙은 HTTP의 장점을 최대한 활용할 수 있는 아키텍처입니다.) 현 개발의 가장 중요한 부분은 소통과 협업이다. 우리는 개발을 진행함에 있어 절대로 혼자 코딩하고 혼자 배포하지 않는다. 따라서 나만의 규칙보다는 관례와 규칙이 있다면 따라야 한다. 왜냐하면 나만의 규칙과 습관은 본인은 쉽게 알아볼 수 있겠지만 상대방은 전혀 아니다. 이 부분을 다시 한번 상기하고 HTTP API를 만들어보자. REST 구성은 다음과 같다. 자원(RESOURCE) 행위(Verb) 표현(Representations) 그렇다면 한번 만들어..

HTTP/모든 개발자를 위한 HTTP 웹 기본 지식

HTTP 기본

모든 개발자를 위한 HTTP 웹 기본 지식 을 듣고 정리한 내용이며 모든 그림 예제는 해당 강의에서 가져온 내용입니다. 항목 모든 것이 HTTP 클라이언트 서버 구조 Stateful, Stateless 비 연결성(connectionless) HTTP 메서드 모든 것이 HTTP HTTP의 초창기는 Text, HTML 등 을 전송하기위한 프로토콜로 나타났다. 하지만 현재의 HTTP 는 모든 데이터(동영상, 이미지, 등등)를 주고 받을 수 있는 프로토콜로 거듭났다. HTTP의 역사 HTTP/0.9 1991년 : GET 메서드만 지원 , HTTP 헤더 X HTTP/1.0 1996년 : 메서드, 헤더 추가 HTTP/1.1 1997년 : 가장 많이 사용 하는 버전 HTTP/2 2015년 : 성능 개선 HTTP/3 ..

HTTP/모든 개발자를 위한 HTTP 웹 기본 지식

URI와 웹 브라우저 요청 흐름

모든 개발자를 위한 HTTP 웹 기본 지식 을 듣고 정리한 내용이며 모든 그림 예제는 해당 강의에서 가져온 내용입니다. 항목 URI IP(인터넷 프로토콜) URI(Uniform Resource Identifier) URI는 간단히 말한다면 리소스를 보여 줄 수 있도록 해주는 식별자이다. 하지만 필자는 학교에서 URI 를 배울때 항상 URL , URN 은 항상 같이 무엇인지 배웠다. 그럼 왜 항상 URI 을 언급할때 URL ,URN 은 같이 나올까? 그 이유에 대해서는 URI은 URN 과 URL 을 포함하고 있기 때문이다. 그러면 URL 은 무엇이고 URN 은 무엇일까? URL 은 우리가 평소에 인터넷에 접속할때 흔히 사용하는 주소 형식이다. 특징이 있다면 어떠한 자원에 대해서 위치와 어떤 자원을 원하는지..

HTTP/모든 개발자를 위한 HTTP 웹 기본 지식

인터넷 네트워크(TCP,UDP,PORT,DNS)

TCP(Transmission Control Protocol) 앞서 살펴본 IP의 단점을 보완해주는 프로토콜 계층이다. TCP는 어떻게 IP의 단점들을 해결할 수 있을까? TCP에서는 출발지 PORT, 목적지 PORT , 전송 제어, 순서, 검증 정보 등을 패킷에 포함시킨다. 해당 정보들을 이용하여 아래에서 살펴볼 행동들을 지원해준다. 연결 지향 - TCP 3 way handshake(가상 연결) 해당 방식은 물리적으로 연결된 것이 아니라 개념적으로만 연결된 것이다. 앞서 살펴본 IP의 비연결성의 단점을 보완해준다 데이터 전달 보증 IP의 비신뢰성을 보완해준다. 해당 방식은 클라이언트가 서버에게 데이터를 전송했다면 서버에서는 데이터를 받았다고 응답 결과를 return 해준다. 순서 보장 해당 방식도 IP..

HTTP/모든 개발자를 위한 HTTP 웹 기본 지식

인터넷 네트워크(인터넷통신, IP)

모든 개발자를 위한 HTTP 웹 기본 지식 을 듣고 정리한 내용이며 모든 그림 예제는 해당 강의에서 가져온 내용입니다. 항목 인터넷 통신 IP(인터넷 프로토콜) 인터넷 통신 클라이언트와 서버는 어떻게 통신할까? 만약 클라이언트와 서버가 가까이 붙어있다면 다음과 같이 선을 연결하여 통신하면 될 것이다. 하지만 대부분 99.9% 는 서버와 클라이언트는 붙어있지않고 우리는 인터넷 망을 이용하여 서버와 통신을 하게된다. 인터넷 망은 매우 복잡하기 때문에 우리의 요청이 안전하게 서버까지 도달하기 위해서는 복잡한 과정을 거쳐야 한다. 따라서 이번 챕터에서는 위에서 말한 복잡한 과정에대해 자세히 알아보자. IP(인터넷 프로토콜) 먼저 인터넷 프로토콜에 대해서 알아보기 전에 이해하기 쉽게 예를 들어보자. 현실 세계에서..

jay Joon
'HTTP/모든 개발자를 위한 HTTP 웹 기본 지식' 카테고리의 글 목록