기타/CS
-
CS 웹 서버, 웹 애플리케이션 서버기타/CS 2024. 4. 11. 10:46
웹 서버, 웹 애플리케이션 서버 (Web Server), (Web Application Server) 1. 웹 서버(Web Server) • HTTP 기반으로 동작 • 정적 리소스 제공, 기타 부가기능 • 정적(파일) HTML, CSS, JS, 이미지, 영상 • 예: NGINX, APACHE 2. 웹 애플리케이션 서버(WAS - Web Application Server) • HTTP 기반으로 동작 • 웹 서버 기능 포함+ (정적 리소스 제공 가능) • 프로그램 코드를 실행해서 애플리케이션 로직 수행 • 동적 HTML, HTTP API(JSON) • 서블릿, JSP, 스프링 MVC • 예: 톰캣(Tomcat) Jetty, Undertow 3. 웹 서버, 웹 애플리케이션 서버(WAS) 차이 • 웹 서버는 정..
-
CS HTTP 헤더3 캐시와 조건부 요청기타/CS 2024. 4. 9. 01:56
캐시와 조건부 요청 1. 캐시 기본 동작 1 - 1. 캐시가 없을 때 • 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. • 인터넷 네트워크는 매우 느리고 비싸다. • 브라우저 로딩 속도가 느리다. • 느린 사용자 경험 1 - 2. 캐시 적용 시 • 캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다. • 비싼 네트워크 사용량을 줄일 수 있다. • 브라우저 로딩 속도가 매우 빠르다. • 빠른 사용자 경험 • 캐시 유효 시간이 초과하면, 서버를 통해 데이터를 다시 조회하고, 캐시를 갱신한다. • 이때 다시 네트워크 다운로드가 발생한다. 2. 검증 헤더와 조건부 요청1 2 - 1. 캐시 시간 초과 • 캐시 유효 시간이 초과해서 서버에 다시 요청하면 다음 두 가지 ..
-
CS HTTP 헤더2 쿠키기타/CS 2024. 4. 9. 00:35
1. 쿠키 • Set-Cookie: 서버에서 클라이언트로 쿠키 전달(응답) • Cookie: 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달 2. 쿠키 미사용 시 처음 welcome 페이지 접근 안녕하세요. 손님 로그인 홍길동님이 로그인했습니다. 로그인 이후 welcome 페이지 접근 안녕하세요. 손님 Stateless • HTTP는 무상태(Stateless) 프로토콜이다. • 클라이언트와 서버가 요청과 응답을 주고 받으면 연결이 끊어진다. • 클라이언트가 다시 요청하면 서버는 이전 요청을 기억하지 못한다. • 클라이언트와 서버는 서로 상태를 유지하지 않는다. 대안 - 모든 요청에 사용자 정보 포함 모든 요청에 정보를 넘기는 문제 • 모든 요청에 사용자 정보가 포함되도록 개발 해..
-
CS HTTP 헤더1기타/CS 2024. 4. 8. 22:38
HTTP 헤더1 1. HTTP 헤더 • header-field = field-name ":" OWS field-value OWS (OWS:띄어쓰기 허용) • field-name은 대소문자 구문 없음 요청 GET /search?q=hello&hl=ko HTTP/1.1 Host: http://www.google.com 헤더 응답 HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 헤더 Content-Length: 3423 헤더 ... 1 - 1. 용도 • HTTP 전송에 필요한 모든 부가정보 • 예: 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보... • 표준 헤더가 너무 많음 • https://en.wik..
-
CS HTTP 상태코드기타/CS 2024. 4. 8. 21:38
HTTP 상태코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 • 1xx (Informational): 요청이 수신되어 처리중 • 2xx (Successful): 요청 정상 처리 • 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 • 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 • 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 만약 모르는 상태 코드가 나타나면? • 클라이언트가 인식할 수 없는 상태코드를 서버가 반환하면? • 클라이언트는 상위 상태코드로 해석해서 처리 • 미래에 새로운 상태 코드가 추가되어도 클라이언트를 변경하지 않아도 됨 • 예: • 299 ??? -> 2x..
-
CS HTTP 메서드 활용기타/CS 2024. 4. 8. 13:45
HTTP 메서드 활용 • 클라이언트에서 서버로 데이터 전송 • HTTP API 설계 예시 1. 클라이언트에서 서버로 데이터 전송 1 - 1. 데이터 전달 방식은 크게 2가지 • 쿼리 파라미터를 통한 데이터 전송 • GET • 주로 정렬 필터(검색어) • 메시지 바디를 통한 데이터 전송 • POST, PUT, PATCH • 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 1 - 2. 요청의 4가지 상황 • 정적 데이터 조회 • 이미지, 정적 텍스트 문서 • 동적 데이터 조회 • 주로 검색, 게시판 목록에서 정렬 필터(검색어) • HTML Form을 통한 데이터 전송 • 회원 가입, 상품 주문, 데이터 변경 • HTTP API를 통한 데이터 전송 • 회원 가입, 상품 주문, 데이터 변경 • 서버 to 서..
-
CS HTTP 메서드기타/CS 2024. 4. 8. 13:16
HTTP 메서드 • HTTP 메서드 - GET, POST • HTTP 메서드 - PUT, PATCH, DELETE • HTTP 메서드의 속성 1. HTTP API를 만들어보자. 리소스 식별, URI 계층 구조 활용 • 회원 목록 조회 /members • 회원 조회 /members/{id} • 회원 등록 /members/{id} • 회원 수정 /members/{id} • 회원 삭제 /members/{id} • 참고: 계층 구조상 상위를 컬렉션으로 보고 복수단어 사용 권장(member -> members) • 회원 조회 /members/{id} -> 어떻게 구분하지? • 회원 등록 /members/{id} -> 어떻게 구분하지? • 회원 수정 /members/{id} -> 어떻게 구분하지? • 회원 삭제 /..
-
CS HTTP기타/CS 2024. 4. 8. 12:49
HTTP 1. HTTP 메시지에 모든 것을 전송 • HTML, TEXT • IMAGE, 음성, 영상, 파일 • JSON, XML (API) • 거의 모든 형태의 데이터 전송 가능 • 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 2. HTTP 역사 • HTTP/0.9 1991년: GET 메서드만 지원, HTTP 헤더X • HTTP/1.0 1996년: 메서드, 헤더 추가 • HTTP/1.1 1997년: 가장 많이 사용, 우리에게 가장 중요한 버전 • HTTP/2 2015년: 성능 개선 • HTTP/3 진행중: TCP 대신에 UDP 사용, 성능 개선 3. 기반 프로토콜 • TCP: HTTP/1.1, HTTP/2 • UDP: HTTP/3 • 현재 HTTP/1.1 주로 사용 • HTTP/2, HTTP/..