Web 13

[Web] HTTP 메서드 (1) GET / POST 방식 + 멱등성, HTTP 요청바디

보통 자원을 조회하거나 검색할 때는 GET 방식을, 자원을 생성(등록)하는 경우 POST 방식을 사용한다. 하지만 언제나 그런 것은 아니다. 그렇기 때문에 상황과 기능에 맞는 메서드를 지정하기 위해서 이번에는 GET과 POST 메서드의 상세한 특징에 대해 주요 키워드와 함께 살펴보고자 한다. '안전한' 메서드와 '멱등성' GET 메서드를 사용할 경우에는 해당 요청이 '안전한 요청'이어야 한다. 여기서 '안전하다'는 의미는 해당 요청이 서버의 자원 상태를 변경하지 않는 것을 말한다. * HTTP/1.1 명세 문서를 참고하면, GET, HEAD, OPTIONS가 각각 안전한 메서드라고 나와 있다. GET 메서드 API를 '안전한 메서드'로 만드는 것도 매우 중요하다. 왜냐하면 GET 메서드는 특히 웹 브라우..

Web/Basic 2024.02.27

[Web] 웹 브라우저와 서버의 상호작용 방법

웹 브라우저가 서버와 상호작용하는 방법에는 크게 네 가지가 있다. 1. URL을 통한 접속 2. 태그를 사용하여 form 제출 3. XHR을 사용한 AJAX 요청 4. 웹 소켓을 통한 연결 URL을 통한 접속 - GET 사용자는 주로 웹 브라우저에서 직접 URL을 입력하여 웹 페이지를 방문하거나 태그가 걸려 있는 링크를 통해 접근한다. 예) 이 URL을 통한 접속에는 중요한 특징이 있는데, 바로 GET 메서드를 사용한다는 점이다. 웹에서 사용하는 프로토콜인 HTTP는 요청의 종류를 '메서드(Method)로 구분한다. URL을 통한 접속 요청의 경우 항상 그 메서드가 'GET'에 해당한다. 태그를 사용하여 form제출 이 방법은 웹사이트를 이용 시 로그인 창이나 게시글 작성 화면에서 보게 되는 입..

Web/Basic 2024.02.27

[Network] 쿠키(cookie)와 세션(session)

쿠키와 세션 쿠키(Cookie) 세션(Session) 개념 HTTP의 일종으로 사용자가 어떤 웹 사이트를 방문할 경우, 그 사이트가 사용하는 서버에서 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일. 이름-값 쌍으로 이루어져 있다. HTTP에서 클라이언트의 상태 정보를 클라이언트의 PC에 저장하였다가 필요시 정보를 참조하거나 재사용할 수 있다. 세션은 일정 기간 동안 같은 사용자(클라이언트)로 부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술이다. 세션은 쿠키를 기반으로 하지만 쿠키와 다르게 서버 측에서 저장하고 관리한다. 특징 - 세션이라는 공간에 클라이언트 정보를 쿠키값으로 저장해두면 로그인을 추가로 해서 DB에 다녀올 필요없이 해당 아이디로 접속가능하다. 클라이언트..

Web/Network 2024.02.25

[Web] 블로킹(blocking)과 논블로킹(non-blocking) + 콜백(callback) 함수

2024.02.23 - [Web/Basic] - [Web] 동기방식과 비동기방식 [Web] 동기방식과 비동기방식 효율적인 데이터 처리와 통신은 웹 개발에서 매우 중요하다. 이번에는 웹 통신 방식에서 중요한 두 개념인 동기 방식과 비동기 방식의 차이를 설명하고, 웹 애플리케이션 개발에서 두 방식의 장 bio-logisch.tistory.com 앞서 다룬 동기/비동기 방식과 관련하여 꼭 알아둬야 하는 개념이 있는데, 바로 블로킹(Blocking)과 논블로킹(Non-blocking)이다. 동기와 비동기가 작업을 요청하는 쪽과 작업을 처리하는 쪽, 두 주체 간의 관계를 이야기하는 용어라면 블로킹과 논블로킹은 작업을 요청하는 쪽에서 통신 시 어떻게 동작하는지를 표현하는 용어라 할 수 있다. 동기 방식으로 통신할 ..

Web/Basic 2024.02.23

[Web] 동기 방식(Synchronous)과 비동기 방식 (Asynchronous)

효율적인 데이터 처리와 통신은 웹 개발에서 매우 중요하다. 이번에는 웹 통신 방식에서 중요한 두 개념인 동기 방식과 비동기 방식의 차이를 설명하고, 웹 애플리케이션 개발에서 두 방식의 장단점에 대해 다뤄보고자 한다. 동기방식 웹의 HTTP 프로토콜 통신방식 중에서 동기(Synchronous)방식이란 작업을 요청하는 쪽과 처리하는 쪽이 서로를 인식하고 상태를 동기화하는 것을 말한다. 클라이언트가 작업을 요청하면 작업을 처리하는 쪽인 서버에서 작업이 완료되어 응답할 때까지 클라이언트는 (다음 요청을 하지 않고) 먼저 보내둔 요청에 대한 응답을 기다린다. 클라이언트는 서버로부터 요청에 대한 응답을 받고 통신이 끊긴 이후 다시 새로운 요청을 하며 통신이 연결되는 흐름으로 작업이 진행된다. 예를 들어, 사용자가 ..

Web/Basic 2024.02.23

[Network] 로드 밸런싱(Load Balancing), 스케일 아웃(Scale out), 스케일 업(Scale up)

이용자가 확장되고 사업의 규모 역시 확장되면서 점차 많은 트래픽을 받는 인프라를 구성하는 방법을 고민해 보았다면, 아래 3가지 개념을 숙지하고 있는 것이 좋다. 먼저, 로드 밸런싱(Load Balancing)은 네트워크나 애플리케이션 서버 등에서 발생하는 트래픽을 여러 대의 서버나 네트워크 장치로 분산시켜서 부하를 균형있게 분산시키는 기술이다. 이를 통해 단일 서버에 가해지는 부하를 분산시켜 서버의 가용성과 성능을 향상시킬 수 있다. 부하 분산을 위해서는 L4, L7 스위치와 같은 네트워크 장비나 엔진엑스(Nginx) 같은 소프트웨어를 사용하여 서버를 구성한다. 이렇게 하면 부하가 분산되는 효과 외에도 스케일 아웃*하기 좋은 환경이 되기 때문이다. 또한 수평적으로 확장할 수 있어 들어오는 트래픽이 늘어나..

Web/Network 2024.02.22

[Network] 사설 IP와 공용 IP, IPv4와 IPv6

2024.02.10 - [Web/Network] - [Web] 프로토콜(Protocol) : HTTP, TCP, UDP, IP + Port(포트번호) 그리고 OSI 7 Layer [Web] 프로토콜(Protocol) : HTTP, TCP, UDP, IP + Port(포트번호) 그리고 OSI 7 Layer 먼저, 프로토콜이란 무엇일까? 프로토콜이란? 클라이언트와 서버가 서로 통신하기 위해서는 통신방법에 대한 약속이 필요한데, 이때 이 약속이 프로토콜이다. "통신규약"이라고 말한다. 웹 통신 bio-logisch.tistory.com 사설 IP와 공인 IP 이론적으로 존재 가능한 IP주소는 약 43억개 정도 되지만 전 세계에서 사용한다고 생각하면 그리 넉넉한 양은 아닐 것이다. IPv4 체계에서도 IP주소를..

Web/Network 2024.02.22

[Web] 프로토콜(Protocol) : HTTP, TCP, UDP, IP + Port(포트번호) 그리고 OSI 7 Layer

먼저, 프로토콜이란 무엇일까? 프로토콜이란? 클라이언트와 서버가 서로 통신하기 위해서는 통신방법에 대한 약속이 필요한데, 이때 이 약속이 프로토콜이다. "통신규약"이라고 말한다. 웹 통신에 주로 쓰이는 IP, TCP, UDP, HTTP 모두 프로토콜에 해당하며 이번에는 위 4가지 프로토콜에 대해 자세히 다루고자 한다. 프로토콜은 아래의 OSI 7 Layer에 의해 좀 더 명확히 이해할 수 있다. OSI 7 Layer(OSI 7계층) ? OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. 다양한 프로토콜에 대해서 바이블로서 정의하는 역할을 한다. 우리는 OSI 7 Layer(OSI 7계층)를 통해 통신이 일어나는 과정을 단계별로 파악할 수 있다. 각 Level에 대해 좀 더 ..

Web/Network 2024.02.10

[Web] 웹 서버와 WAS : 아파치(Apache)와 톰캣(Tomcat)

HTTP는 클라이언트와 서버 간의 데이터 교환을 위한 프로토콜로, 웹 브라우저(클라이언트)와 웹 서버 간에 웹 페이지, 이미지, 동영상 등의 리소스를 주고받는다. HTTP 통신 과정 더보기 요청(Request): 클라이언트(웹 브라우저)가 서버에게 요청을 보낸다. 요청은 HTTP 메서드(GET, POST, PUT, DELETE 등)와 요청 URL(Uniform Resource Locator)을 포함한다. 예를 들어, 웹 브라우저에서 "http://www.example.com"을 입력하면 클라이언트는 서버에게 "GET / HTTP/1.1"과 같은 요청을 보낸다. 응답(Response): 서버는 클라이언트의 요청에 대한 응답을 생성한다. 응답은 HTTP 상태 코드(200 OK, 404 Not Found 등)..

Web/Basic 2024.01.30

[Web] HTTP와 HTTPS(HTTP Secure), SSL/TLS, 핸드셰이크

서버와 클라이언트 간의 웹 통신에서는 통신 프로토콜로 HTTP(HyperText Transfer Protocol)가 주로 사용된다. HTTP는 클라이언트가 서버에게 요청을 보내고, 서버가 클라이언트에게 요청에 대한 응답을 보내는 데 사용되며, 이를 통해 웹 페이지의 요청과 응답이 이루어진다. HTTP 프로토콜은 요청과 응답이라는 두 가지 주요한 메시지 형식을 사용한다. 클라이언트는 요청 메시지를 생성하여 서버에게 보내고, 서버는 해당 요청에 대한 응답 메시지를 생성하여 클라이언트에게 보낸다. 이러한 요청과 응답 메시지는 특정한 구조와 규칙에 따라야 하는데 여기서 중요한 점은 클라이언트와 서버가 동일한 프로토콜을 사용하여 통신해야 한다는 점이다. 즉, 클라이언트가 HTTP를 사용하여 요청을 보내면, 서버는..

Web/Network 2024.01.30