본문 바로가기

CS/HTTP

(5)
🌐 TCP와 UDP 정리 1️⃣ TCP(Transfermission Control Protocol, 전송 제어 프로토콜) TCP로 전송할 때 붙이는 헤더를 TCP 헤더라 하고, 이 헤더가 붙은 데이터를 세그먼트(segment)라 한다 연결형 통신방식이며, 신뢰할 수 있는 데이터 전송을 보장 흐름 제어, 혼잡 제어, 오류 제어를 제공 ❓ 흐름 제어 데이터를 송수신하는 곳의 데이터 처리 속도를 조절해 수신자 버퍼 오버플로우를 방지하는 것 송신하는 곳에서 감당하지 못하도록 많은 데이터를 빠르게 보내 수신측에서 문제가 발생한다 stop and wait, 슬라이딩 윈도우 등을 사용 ❓ 혼잡 제어 네트워크 내 패킷 수가 넘치지 않도록 막는 것 정보의 소통량이 과다하면 조금만 전송하여 혼잡 붕괴 현상이 일어나는 것을 막는 것이다 연결 지향형..
HTTP 메소드의 종류와 특징, 속성 HTTP 메소드 주어진 리소스에 수행하길 원하는 행동, 서버가 수행해야 할 동작을 지정한다 주요 메소드 종류 GET 리소스의 조회에 사용한다. 서버에 전달하고 싶은 데이터를 query(parameter, query string)을 통해 전달한다. 메시지 바디를 통해 데이터를 전달할 수도 있지만 지원하지 않는 곳도 존재하기 때문에 권장❌ POST 메시지 바디를 통해 서버로 요청 데이터를 전달한다. 서버는 메시지 바디를 통해 들어온 데이터를 처리하는 모든 기능을 수행한다. 주로 신규 리소스의 등록, 프로세스 처리 등에 사용한다 신규 리소스를 등록했다면 새로 생성되었다는 201 상태 코드와 생성된 URI 경로(Location)를 반환한다 또한, 다른 메소드로 처리하기 애매한 경우 주로 사용된다. 조회할 때 데..
HTTP란? HTTP의 특징, 메시지의 구조 HTTP? HTTP란 HyperText Transfer Protocol로 문서 간의 링크를 전송하는 프로토콜이다. HTML 메시지에 HTML 뿐만 아니라 텍스트나 이미지, 음성, 영상 JSON 등 거의 모든 형태의 데이터가 전송이 가능하며 서버간의 데이터 전송 시에도 대부분 HTTP를 사용한다. 현재 주로 사용하는 HTTP/1.1과 HTTP/2는 TCP를 기반으로 하고 있다. HTTP의 특징 1️⃣ 클라이언트 서버 구조 Request Response 구조 클라이언트가 서버에 요청을 보내고 응답을 대기 서버가 요청에 대한 결과를 만들어 응답 비즈니스 로직과 데이터는 모두 서버가 처리하고 UI 등은 클라이언트가 처리한다 클라이언트와 서버의 분리를 통해 클라이언트와 서버가 각각의 성장이 가능! 2️⃣ Stat..
주소창에 URL을 입력하면 일어나는 일 자세하게 설명하는 것이 아닌 대략적인 흐름을 간단하게 정리해보았다. 웹 브라우저에 주소를 입력하게 되면, 먼저 'google.com'에 해당하는 DNS서버를 조회하여 IP정보를 얻어온다. 또한, 생략된 포트 번호를 파악하기 위해 https의 포트인 443을 찾아내 http 요청 메시지를 생성한다. 요청을 보내기 전, 먼저 소켓 라이브러리를 통해 IP와 포트정보를 사용해 3-way-handshake를 통해 연결을 확립한다. 요청 메시지가 전송 계층에 전달되어 TCP헤더가 붙게 되고 => 세그먼트 네트워크 계층에 전달되어 IP헤더가 붙게 된다 => IP 패킷 브라우저는 만들어진 패킷을 서버에 전달하게 되고, 서버는 받은 패킷의 헤더를 제거하고 해석을 하고 요청을 처리한다. 처리된 결과를 통해 HTTP 응답 ..
URI vs URL vs URN URI Uniform Resource Identifier, 통합 자원 식별자라는 뜻을 가지고 있다. 여기서 식별자는 다른 항목과 구분할 수 있는 정보로 사람으로 치면 주민번호와 같은 것이라고 할 수 있다. URL은 Locator(로케이터)와 Name(이름)으로 분류할 수 있는데 이것이 URL과 URN이다 따라서, URL과 URN은 URI의 부분집합이 된다. URL Uniform Resource Locator, 리소스가 있는 구체적인 위치이다. 일반적으로 우리가 인터넷에서 많이 보는 형태이다. https://www.naver.com www.google.com/search?q=naver 등 URL의 문법 scheme://[userinfo@]host[:port][/path][?query][#fragment] ..