본문 바로가기
728x90

네트워크 (Network)/HTTP9

[HTTP] 상태 코드 HTTP 상태 코드 - 3자리 숫자로 이루어져 있으며, 총 100번대 ~ 500번대 까지 존재 - 클라이언트가 보낸 HTTP 요청에 대한 서버의 응답 코드 - 상태 코드에 따라 요청의 성공/실패 여부 판단 HTTP 상태 코드 분류 # 1XX (Informational) : 조건부 응답 - 요청을 제대로 받고, 처리가 진행 중 상태 코드 상태 메세지 설명 100 Continue 처리가 되었으니 다음으로 진행 101 Switching Protocols 서버가 프로토콜을 전환중 102 Processing 서버가 요청을 아직 처리중이라 제대로된 응답을 알려줄 수 없음 # 2XX (Successful) : 성공 - 요청이 제대로 처리됨 상태 코드 상태 메세지 설명 200 OK 클라이언트의 요청을 서버가 정상적으로.. 2024. 2. 1.
[HTTP] 쿠키(Cookie), 세션 (Session) HTTP 프로토콜의 특징이자 약점 # Connectionless (비연결지향) - 클라이언트가 서버에 요청(request) 보내면 서버는 응답(response)을 한 후 연결을 끊는다. - HTTP 1.1 버전에서는 헤더에 keep-alive 라는 값을 줘서 커넥션을 재활용하는게 디폴트다. # Stateless (상태정보 유지 X) - 통신이 끝나면 상태를 유지 X- 연결이 끊어지는 순간 모든 상태 정보가 사라짐- 쿠키와 세션은 두가지 특징을 해결하기 위해 사용 쿠키 (Cookie) - 클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일 # 특징 - 사용자 인증이 유효한 시간을 명시할 수 있고, 유효 시간이 정해지면 브라우저가 종료되어도 인증이 유지 - 클라이언트의 상태 정보를 로.. 2024. 2. 1.
[HTTP] MIME 타입 MIME (Multipurpose Internet Mail Extensions) 이란? - 오직 텍스트만 보낼 수 있었던 SMTP의 단점을 보완, 메세지 내부에 다른 파일을 전송할 수 있도록 하는 전자메일 프로토콜 - MIME으로 인코딩한 파일은 Content-type 필드를 헤더에 담게 되고, 이를 통해 전송된 자원의 형식을 명시 - 현재는 전자메일에 국한되지 않고, 웹을 통해 여러 형태의 파일을 전송 # MIME 을 사용하는 이유 - 과거 텍스트파일을 주고 받는데 ASCII로 공통된 표준에 따르기만 하면 문제 X → 하지만 네트워크를 통해서 ASCII 파일이 아닌 바이너리 파일을 보내는 경우 많아짐 → 인터넷에서 전송 가능한 문자는 오로지 ASCII 표준 → 다른 데이터로 변환하는 과정 필요해짐 → .. 2024. 1. 31.
[HTTP] 웹 서버(Web Server) & 웹 애플리케이션 서버(WAS) 웹 서버 (Web Server) - 웹 브라우저(클라이언트)로 부터 HTTP요청을 받아 HTML문서와 같은 정적 컨텐츠를 제공하는 프로그램 ex) Apache, Nginx, IIS 등 # 웹 서버의 기능 - 정적인 컨텐츠 요청시 → WAS를 거치지 않고 바로 자원 제공 - 동적인 컨텐츠 요청시 → 클라이언트 요청을 WAS로 보내고, WAS가 처리한 결과를 클라이언트에게 전달 웹 애플리케이션 서버 (WAS, Web Application Server) ★ - DB조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server - HTTP를 통해 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어(소프트웨어 엔진) - 웹 컨테이너(Web Container) 혹은 서블.. 2024. 1. 31.
[HTTP] 웹 브라우저(Web Browser) 웹 브라우저 (Web Browser) - 웹 브라우저는 서버와 HTTP 통신을 대신해주고, 수신한 리소스를 시각화 해준다. - 웹에서 정보를 탐색하고 HTML문서, 이미지 등 여러 컨텐츠를 우리에게 표현해주는 소프트웨어 - 뛰어난 이용자 경험(UX) 제공 - 예) Google Chrome, Mozilla Firefox, Apple Safari, Microsoft Edge, Opera # 웹 브라우저의 기본 동작 1. URL 분석 : 웹 브라우저의 주소 창에 입력된 주소 해석 2. DNS 요청 : 입력된 주소 탐색 ▶ DNS (Domain Name Server) : Host의 도메인 이름을 IP로 변환하거나, IP를 도메인 이름으로 변환함 3. HTTP를 통해 해당 서버에 요청 4. 서버의 HTTP 응답 .. 2024. 1. 30.
[HTTP] REST API 방식 API - Application : 운영체제를 제외한 모든 프로그램 - Programming : 코드를 통해서 프로그램을 만드는 과정 - Interface : 표준, 규칙, 강제성이 있는 약속 REST API - 기존 : GET, POST 방식만 사용함 → POST는 추가/수정/삭제가 가능한데, 이를 컴퓨터가 구분할 수 있도록 하기 번거로워서 REST API 등장 - GET : 정보 요청 (서버 자원 요청) · HTTP 메시지 body 부분에 데이터 X · 정보를 전송한 기록이 남음 · 주소 창에 주소를 입력하거나, a 태그를 이용해서 주소로 접근하면 GET 메서드 실행 · 시작 줄에 입력하면 GET 방식으로도 데이터를 보낼 수 있음 ex) http://localhost:8080/blog/boardcon.. 2024. 1. 30.
[HTTP] 웹 서비스와 웹 리소스 (URI & URL) 웹 (Web) - 인터넷을 기반으로 구현된 서비스 중 HTTP를 이용하여 정보를 공유하는 서비스 - 인터넷 통신망을 활용하여 구현된 전 지구적 정보 공간 - HTTP : 웹 상에서 서로 통신을 하기 위해 정해둔 일종의 규칙 1) 웹 서버 (Web Server) : 웹에서 정보를 제공하는 주체 2) 웹 클라이언트 (Web Client) : 웹에서 정보를 요구하여 제공받는 이용자 웹 서비스 - 웹 상에서 제공되는 서비스 - 이용자의 요청을 해석/가공하여 필요한 정보/기능을 제공하는 능동형 서비스 1) 프론트엔드 (Front-end) : 이용자의 요청을 받는 부분 이용자에게 직접 보여지는 부분 '웹 리소스'로 구성됨 : 페이지가 보여주는 정보들은 모두 웹 리소스에 명시되어 있음 ex) 글 내용, 텍스트 색/모.. 2024. 1. 25.
[HTTP] 통신 프로토콜 - HTTP와 HTTPS HTTP (Hyper Text Transfer Protocol) - 서버와 클라이언트의 데이터 교환을 요청과 응답 형식으로 정의한 프로토콜 # 기본 메커니즘 - 클라이언트가 서버에게 요청하면 서버가 응답하는 것 : 웹 서버는 HTTP 서버를 HTTP 서비스 포트에 대기시킴 (TCP/80 or TCP/8080을 주로 사용함) → 클라이언트가 서비스 포트에 HTTP 요청을 전송하면 이를 해석하여 응답을 반환함 HTTP 메세지 # 종류 Request HTTP 메세지 Response HTTP 메세지 # 기본 구조 1) HTTP 헤드 - 메세지에 대한 정보 - 각 줄은 CRLF(빈 줄)로 구분됨 - 첫 줄 : 시작 줄 (Start-line) - 나머지 줄 : 헤더 (Header) : 필드와 값으로 구성됨 → HT.. 2024. 1. 25.
[HTTP] 인코딩과 포트 인코딩 표준 # 인코딩 - 문자를 컴퓨터가 인식할 수 있는 숫자로 변환하는 과정 # 아스키코드 (ASCII) - 7비트 데이터에 대한 인코딩 표준 - 알파벳과 특수문자 등을 표현할 수 있음 - 초기에는 각 문자마다 고유한 인코딩 표준을 사용함 → 이러한 방식은 인코딩 호환성이 좋지 않음 ex) 한글이 뻃쑳띫 or □□□ 이런 식으로 깨지는 것은 인코딩이 호환되지 않아 발생하는 문제 → 해결 : 유니코드 # 유니코드 (Unicode) - 목표 : 모든 언어의 문자를 하나의 표준에 담음 - 하나의 문자를 최대 32개의 비트로 표현할 수 있음 포트 - 클라이언트가 서버의 포트(항구)에 접근해서 데이터를 내려 놓음 → 서버가 클라이언트에 보낼 데이터를 싣고 돌려보냄 # 네트워크 포트 (Network Port) .. 2024. 1. 25.
728x90