본문 바로가기

CS

(45)
[모든 개발자를 위한 HTTP 웹 기본 지식] 7. HTTP 헤더1 - 일반 헤더 HTTP 헤더 개요 과거의 HTTP 헤더(RFC2616) 헤더 분류 General 헤더: 메시지 전체에 적용되는 정보 (ex. Connection: close) Request 헤더: 요청 정보(ex. User-Agent: Mozilla/5.0 …) Response 헤더: 응답 정보 (ex. Server: Apache) Entity 헤더: 엔티티 바디 정보 (ex. Content-Type: text/html, Content-Length:3423) HTTP Body 엔티티 헤더: 엔티티 본문의 데이터를 해석할 수 있는 정보 제공 데이터 유형(html, json), 데이터 길이, 압축 정보 등 엔티티 본문: 요청, 응답에서 전달할 실제 데이터 메시지 본문은 엔티티 본문을 전달하는데 사용함 (메시지 본문 안에 ..
[모든 개발자를 위한 HTTP 웹 기본 지식] 6. HTTP 상태 코드 HTTP 상태코드 소개 상태 코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx (informational): 요청이 수신되어 처리 중 거의 사용하지 않으므로 생략 2xx (successful): 요청 정상 처리 3xx (redirection): 요청을 완료하려면 추가 행동이 필요 4xx (client error): 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 5xx (server error): 서버 오류, 서버가 정상 요청을 처리하지 못함 만약 모르는 상태 코드를 서버가 반환하면? 클라이언트는 상위 상태코드로 해석해서 처리함 따라서 미래에 새로운 상태 코드가 추가된다 하더라도 클라이언트를 변경하지 않아도 됨 ex. 299 → 2xx (successful) 2..
[모든 개발자를 위한 HTTP 웹 기본 지식] 5. HTTP 메서드 활용 클라이언트에서 서버로 데이터 전송 데이터 전달 방식(크게 2가지) 쿼리 파라미터를 통한 데이터 전송 GET 주로 정렬 필터(검색어) 시 사용 메시지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원가입, 상품 주문, 새로운 리소스 등록, 리소스 변경 클라이언트에서 서버로 데이터를 전송하는 4가지 상황 정적 데이터 조회 동적 데이터 조회 HTML Form을 통한 데이터 전송 회원 강비, 상품 주문, 데이터 변경 HTTP API를 통한 데이터 전송 회원 가입, 상품 주문, 데이터 변경 서버 to 서버, 앱 클라이언트, 웹 클라이언트(Ajax) 1. 정적 데이터 조회 이미지, 정적 텍스트 문서 조회는 GET 사용 쿼리 파라미터 미사용 정적 데이터는 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하..
[모든 개발자를 위한 HTTP 웹 기본 지식] 4. 메서드 API URI 고민 URI = 리소스 + 해당 리소스를 대상으로 하는 행위 리소스 = 회원(/members) 명사 계층 구조상 상위를 컬렉션으로 보고, 복수단어 사용 권장(member → members) 최근에는 리소스 → 표현(representation)으로 용어가 변경됨 메서드 = 조회, 등록, 삭제, 변경 동사 리소스를 식별함 HTTP 메서드 주요 메서드 GET: 리소스 조회 POST: 요청 데이터 처리, 주로 등록에 사용 PUT: 리소스를 대체, 해당 리소스가 없으면 생성 PATCH: 리소스 부분 변경 DELETE: 리소스 삭제 기타 메서드 HEAD: GET과 동일하나, 메시지 부분만 제외하고 상태 줄과 헤더만 반환 OPTIONS: 대상 리소스에 대한 통신 가능 옵션(메서드)를 설명(주로 CORS..
[모든 개발자를 위한 HTTP 웹 기본 지식] 3. HTTP 기본 🍒 Recap HTTP 메시지에 모든 것을 전송함 HTTP 역사: HTTP/1.1을 기준으로 학습해야 함 HTTP/2, HTTP/3 은 성능과 관련. 1.1버전만 제대로 학습하면 됨 클라이언트 - 서버 구조 HTTP는 무상태 프로토콜(Stateless)을 지향 HTTP 메시지 = 시작라인 + 헤더 + CRLF + 바디 단순함, 확장 가능 지금은 HTTP 시대! 다시 살펴보고 가자: TCP/IP 4계층 모든 것이 HTTP HTTP HTTP(=HyperText Transfer Protocol) Hypertext: HTML과 같은 문서 Hypertext를 전송하는 것 프로토콜로 시작됨 HTTP 메시지에 모든 것을 전송 거의 모든 형태의 데이터 전송 가능 HTML, TEXT IMAGE, 음성, 영상, 파일 JS..
[모든 개발자를 위한 HTTP 웹 기본 지식] 2. URI와 웹 브라우저 요청 흐름 URI URI(Uniform Resource Identifier) - 리소스를 식별하는 통합된 방법 URI? URL? URN? “URI는 로케이터(Locator), 이름(Name) 또는 둘 다 추가로 분류될 수 있다” 리소스를 식별한다? 자원이 어디에 있는지 식별함. 사람을 식별하기 위해 주민등록번호를 사용하는 것을 생각하면 됨. URI Uniform: 리소스 식별하는 통일된 방식 Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음) Identifier: 다른 항목과 구분하는데 필요한 정보 URL, URN URL (Uniform Resource Locator): 리소스가 있는 위치를 지정 (ex. 서울시 강남구 …) URN (Uniform Resource Name): 리소스에 이름을 부..
[모든 개발자를 위한 HTTP 웹 기본 지식] 1. 인터넷 네트워크 🍒 Recap 인터넷 통신 복잡한 인터넷 망에서 메시지를 보내기 위해 “IP” 규칙을 사용 IP의 한계를 “TCP”로 해결 “UDP”는 IP와 거의 동일하지만 PORT가 추가된 백지 개념. 필요에 따라서 UDP 위의 애플리케이션에서 기능을 확장할 수 있음(ex. 최적화) 같은 IP 내에서 동작하는 애플리케이션을 구분짓기 위해 “PORT” 사용 IP = 아파트 PORT = 몇동 몇호 IP는 외우기 어렵고 변경될 수 있는 문제가 있는데, 이를 “DNS”를 등록하여 이 문제를 해결함 1. 인터넷 통신 인터넷에서 컴퓨터 둘은 어떻게 통신할까? 케이블로 연결되어 있으면 바로 요청(클라→서버), 응답(서버→클라)하면 됨 하지만 실제는 먼 거리도 통신해야 함 ⇒ “인터넷 망” 이용 복잡한 인터넷 망 수많은 노드(=서..
[230427] 과일 장수 문제 https://school.programmers.co.kr/learn/courses/30/lessons/135808 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1~k, 1점 bad, k점 good 사과 한 상자 가격: 가장 낮은 점수p * 사과개수m 풀이 첫 번째 풀이 (실패) function solution(k, m, score) { let answer = 0; score.sort((a, b) => b - a); while(score.length >= m) { const min = score[m - 1]; answer += min * m sco..

반응형