일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- inflearn
- redis
- Operating System
- 우아한레디스
- 이펙티브코틀린
- FIFO paging
- 운영체제
- HTTP
- Operating System.
- 에러핸들링
- Window-Via-c/c++
- 10026번
- 스프링 입문
- Four Squares
- 우아한 테크 세미나
- 2475번
- BOJ
- 열혈 tcp/ip 프로그래밍
- 제프리리처
- n타일링2
- 김영한
- Spring
- C#
- C++
- 윤성우 저자
- 스프링 핵심 원리
- TCP/IP
- 토마토
- OS
- 열혈 TCP/IP 소켓 프로그래밍
- Today
- Total
목록HTTP (10)
나의 브을로오그으

캐시 기본 동작 캐시가 없을 때 첫 번째 요청 요청 GET /star.jpg HTTP/1.1 응답 HTTP/1.1 200 OK Content-Type: image/jpeg Content-Length: 34012 aksjdfikjbkjbnkjnzxcokjjifvnike15423kcv sodnvndkaskfkdvbk125kcvk2kvfk4kbkdsfbk 약 1.1M 크기의 이미지를 보내고, 웹브라우저에서 해당 이미지를 랜더링 이후 캐시가 없을 때 또 한번 요청을 하게되면 아까전 요청과 똑같이 응답을 내려준다. 캐시가 없을 때 - 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. - 인터넷 네트워크는 매우 느리고 비싸다. - 브라우저 로딩 속도가 느리다. - 느린 사용자 경험 캐..

HTTP 헤더 개요 헤더 구조 - header-field : field-name":" OWS field-value OWS (OWS: 띄어쓰기 사용) HTTP 헤더 용도 - HTTP 전송에 필요한 모든 부가정보 - 예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등등.... - 표준 헤더가 너무 많음 - 필요시 임의의 헤더 추가 가능 - helloworld:hihi HTTP 헤더 분류 - RFC2616(과거) - 헤더 분류 * General 헤더: 메시지 전체에 적용되는 정보 예) Connection: close * Request 헤더: 요청 정보, 예) User-Agent: Mozila/5.0 (Macintosh; ...) * Response ..

HTTP 상태 코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 - 1xx(informational): 요청이 수신되어 처리중 (거의 않씀) - 2xx(Successful): 요청 정상 처리 - 3xx(Redirection): 요청을 완료하려면 추가 행동이 필요 - 4xx(Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 - 5xx(Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 만약 모르는 상태 코드가 나온다면? - 클라이언트가 인식할 수 없는 상태코드를 서버가 반환하면? - 클라이언트는 상위 상태코드로 해석해서 처리 - 미래에 새로운 상태 코드가 추가되어드 클라이언트를 변경하지 않아도 됨. - 예) * 299 ??? ..

- HTTP API - 컬렉션 * POST 기반 등록 * 예) 회원 관리 API 제공 - HTTP API - 스토어 * PUT 기반 등록 * 예) 정적 컨텐츠 관리, 원격 파일 관리 - HTML FORM 사용 * 웹 페이지 회원 관리 * GET, POST만 지원 회원 관리 시스템 API 설계 - POST 기반 등록 - 회원 목록 /members : GET - 회원 등록 /members : POST - 회원 조회 /members/{id} : GET - 회원 수정 /members/{id} : PATCH, PUT, POST - 회원 삭제 /members/{id} : DELETE (다시한번 강조하지만 URI 설계는 항상 리소스를 기준으로 설계를 해야 한다.) 회원 관리 시스템 POST - 신규 자원 등록 특징 ..

클라이언트에서 서버로 데이터 전송 데이터 전달 방식은 크게 2가지 - 쿼리 파라미터를 통한 데이터 전송 * GET * 주로 정렬 필터(검색어) - 메시지 바디를 통한 데이터 전송 * POST, PUT, PATCH * 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 클라이언트에서 서버로 데이터 전송 4가지 상황 - 정적 데이터 조회 * 이미지, 정적 텍스트 문서 - 동적 데이터 조회 * 주로 검색, 게시판 목록에서 정렬 필터(검색어) - HTML Form을 통한 데이터 전송 * 회원 가입, 상품 주문, 데이터 변경 - HTTP API를 통한 데이터 전송 * 회원 가입, 상품 주문, 데이터 변경 * 서버 to 서버, 앱 클라이언트 ,웹 클라이언트(Ajax) 정적 데이터 조회 쿼리 파라미터 미사용 GET ..

HTTP 메서드 - HTTP API를 만들어보자 - HTTP 메서드 - GET, POST - HTTP 메서드 - PUT, PATCH, DELETE - HTTP 메서드의 속성 요구사항 회원 정보 관리 API를 만들어라 - 회원 목록 조회 - 회원 조회 - 회원 등록 - 회원 수정 - 회원 삭제 요구 사항에 따라 URL를 설계한다. API URI 설계 URI(Uniform Resource Identifier) - 회원 목록 조회 - /read_member_list - 회원 조회 - /read_member - 회원 등록 - /insert_member - 회원 삭제 - /delete_member - 회원 수정 - /modify_member 이렇게 설계하는게 좋은 설계일까? - 리소스의 의미는 뭘까? * 회원을 ..

클라이언트 서버 구조 - Request Response 구조 - 클라이언트는 서버에 요청을 보내고, 응답을 대기 - 서버가 요청에 대한 결과를 만들어서 응답 (비즈니스 로직, 데이터 처리 등을 서버에 위임, 클라이언트는 오직 UI 랜더링에만 집중) (게임으로 비유해도 추세가 비슷하다. 과거에는 게임을 할 때 필요한 데이터 등을 클라이언트가 서버로부터 받아오면 특정 로직을 실행하여 랜더링을 했었는데, 현재의 게임은 특정 로직 자체도 서버에서 처리하고 클라이언트는 오직 그에대한 결과만 받아와서 랜더링만을 한다.) 무상태 프로토콜 스테이스리스(Stateless) HTTP의 중요 특징중 하나이다. - 서버가 클라이언트의 상태를 보존 X - 장점 : 서버 확장성이 높다.(Scale out) - 단점 : 클라이언트..

HTTP (HyperText Text Transfer Protocol) (지금은 모든 데이터들을 HTTP 메시지로 전송한다.) - HTML, TEXT - IMAGE, 음성, 영상, 파일 - JSON, XML (API) - 거의 모든 형태의 데이터 전송 가능 - 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 - 지금은 HTTP 시대 HTTP 역사 - HTTP/0.9 1991년 : GET 메서드만 지원, HTTP 헤더 X - HTTP/1.0 1996년 : 메서드, 헤더 추가 - HTTP/1.1 1997년 : 가장 많이 사용, 가장 중요한 버전 (RFC2068(1997) -> RFC2616(1999) -> RFC7230~RFC7235(2014) - HTTP/2 2015년 : 성능 개선 - HTTP/3..

목차 - URL - 웹 브라우저 요청 흐름 URI(Uniform Resource Identifier, 리소스 통합 식별자) URI? URL? URN? URI는 로케이터(locator), 이름(name) 또는 둘다 추가로 분류될 수 있다. URI가 더 가장 큰개념임. 모든 자원을 식별하는 식별자다라는 의미. URL은 locator(위치)라는 한정된 범위의 자원을 식별하는 것이고, URN은 name(이름)이라는 한정된 범위의 자원을 식별하는 것이다. 구조 foo://example.com:8088/hello/world/httpworld?name=honggildong#nose URL : foo://example.com:8088/hello/world/httpworld?name=honggildong#nose URN..

목차 1. 인터넷 통신 2. IP(Interanet Protocol) 3. TCP, UDP 4. PORT 5. DNS 인터넷에서 컴퓨터 둘은 어떻게 통신할까? P2P(Pear to Pear)통신(그냥 컴퓨터 2개 연결해서) 통신을 하는 경우에는 그냥 하면 되지만, 멀리 있는 컴퓨터와 통신을 하려면, 인터넷(Internet)을 통해 통신을 해야하는데 인터넷 안에는 수많은 중간 노드(컴퓨터)들이 있고, 이런 수많은 노드(컴퓨터)들을 통해서 어떻게 목적지까지 안전하게 도착할까? 그것을 아는것이 중요하다!! 멀리 있는 컴퓨터로 데이터를 보내고 싶다면 어떻게 해야 할까? 먼저 각 컴퓨터를 구분 할 수 있는 IP Address(Internet Protocol Address)라고 하는 주소를 가져야 한다. 우리가 네..