본문 바로가기

웹 프로그래밍/HTTP

(8)
HTTP 헤더(2) 캐시 -캐시가 없을때: 데이터가 변경되지 않아도 네트워크를 통해 데이터를 다운 받아야함 -캐시 적용: 캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지않고 캐시 저장소에서 바로 꺼낼수 있음 검증 헤더(서버: last-modified)와 조건부 요청(클라이언트: If-modified-since) -캐시 유효시간 초과시 -1.서버에서 기존 데이터를 변경함 -2.기존데이터와 똑같음 -캐시 만료후 기존 데이터를 변경하지 않음 -클라이언트의 데이터와 서버의 데이터가 같다는 사실만 알면 재새용 가능 -> 검증헤더 추가 -304 Not Modified + 헤더 메타 정보만 응답(바디 X) -클라이언트는 캐시의 메타정보를 갱신하고 캐시에 저장되어 있는 데이터 재활용(작은 헤더 정보만 다운로드) -검증헤더:캐시 데이터..
HTTP 헤더(1) HTTP 헤더 용도 HTTP 전송에 필요한 모든 부가정보 HTTP Body -메시지 본문을 통해 표현 데이터 전달 -표현 헤더는 표현 데이터를 해석할수 있는 정보 제공(데이터 유형, 길이, 압축정보 등) -Content-Type: 표현 데이터의 형식 -Content-Encoding: 표현 데이터의 압축 방식 -Content-Language: 표현 데이터의 자연 언어 -Content-Length: 표현 데이터의 길이 -표현헤더는 전송, 응답 둘다 사용 협상(콘텐츠 네고시에이션): 클라이언트가 선호하는 표현 요청 -Accept: 클라이언트가 선호하는 미디어 타입 전달 -Accept-Charset: 클라이언트가 선호하는 문자 인코딩 -Accept-Encoding: 클라이언트가 선호하는 압축 인코딩 -Accep..
HTTP 상태코드 상태코드: 클라이언트가 보낸 요청의 처리상태를 응답에서 알려주는 기능 -1xx(Informational): 요청이 수신되어 처리중 (거의 안씀) -2xx(Successful): 요청 정상 처리 (e.g. 200 OK) -3xx(Redirection): 요청을 완료하려면 추가 행동이 필요 -4xx(Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 -5xx(Server Error): 서버 오류, 서버가 정상요청을 처리하지 못함 2xx: 클라이언트의 요청을 성공적으로 처리 -200 OK -201 Created(POST -> 서버가 URI 생성) -202 Accepted(접수는 되었으나 미완료 e.g. batch) -204 No Content(응답 본문에 보낼 데이터가..
HTTP 메서드 활용 클라이언트에서 서버로 데이터 전송: 데이터 전달 방식은 크게 2가지 -쿼리 파라미터를 통한 데이터 전송(GET, 검색어) -메시지 바디를 통한 데이터 전송 -POST, PUT, PATCH -회원 가입, 상품 주문, 리소스 등록, 리소스 변경 4가지 상황 1.정적 데이터 조회(이미지, 정적 텍스트 문서): GET 쿼리 없이 조회가능 2.동적 데이터 조회(주로 검색): GET 쿼리 파라미터기반 정렬 필터해서 결과를 동적으로 생성 3.HTML Form을 통한 데이터 전송(회원가입, 데이터 변경등) -폼 테크 -> HTTP 메시지 생성(웹 브라우저) 전송 POST /save HTTP/1.1 Host: localhost:8080 Content-Type: application/x-www-form-urlencoded..
HTTP 메서드 API URI 설계시 -리소스의 의미? -회원을 등록하고 수정하고 조회하는게 리소스가 아니라 회원이라는 개념 자체가 리소스 -리소스 식별? -회원이라는 리소스만 식별하면됨 -> 회원 리소스를 URI에 매핑 -어떻게 구별?(리소스는 다 똑같음) -먼저 리소스와 행위를 분리 -중요한 것은 리소스를 식별하는것 -URI는 리소스만 식별(행위 X) -리소스: 회원 -행위: 조회, 등록, 삭제, 변경 -그럼 행위는 어떻게 구분하는가? HTTP 메서드 HTTP 메서드 종류 -GET: 리소스 조회 -POST: 요청 데이터 처리, 주로 등록에 사용 -PUT: 리소스를 대체(덮어쓰기), 해당 리소스가 없으면 생성 -PATCH: 리소스 부분 변경(수정) -DELETE: 리소스 삭제 GET -리소스 조회 -서버에 전달하고 싶..
HTTP HTTP -모든것이 HTTP(HyperText Transfer Protocol) -HTTP 메시지에 모든 것을 전송(HTML, 영상, 모든형태의 데이터) -TCP: HTTP/1.1(중요한 핵심 버전), HTTP/2(성능개선) -UDP: HTTP/3 HTTP 특징 -클라이언트 서버구조 -무상태 프로토콜(stateless), 비연결성 -HTTP메시지 -단순함,확장가능 클라이언트 서버 구조 -Reqeust Response 구조 -클라이언트는 서버에 요청을 보내고 응답을 대기 -서버가 요청에 대한 결과를 만들어서 응답 -서버는 비지니스 로직과 데이터, 클라이언트는 UI와 사용성에 집중하여 각각 독립적으로 발전 가능 무상태 프로토콜(Stateless) -서버가 클라이언트의 상태를 보존 X -장점: 서버 확장성 높..
URI와 웹 브라우저 URI -Uniform: 리소스 식별하는 통일된 방식 -Resource: 자원, URI로 식별할수 있는 모든것(제한 없음) -Identifier: 다른항목과 구분하는데 필요한 정보 URI URL(Resource Locater:리소스가 있는 위치지정) URN(Resource Name:리소스에 이름 부여) e.g. URL(foo://example.com:8042/oveer/there?name=ferret#nose) URN(urn:example:animal:ferret:nose): 거의 안씀 분석 https://www.google.com/search?q=hello&hl=ko scheme://[userinfo@]host[:port][/path][?query][#fragment] scheme -주로 프로토콜 사용..
인터넷 네트워크 인터넷 통신 -복잡한 인터넷 망? -> IP(인터넷 프로토콜) 주소 부여 e.g. 클라이언트(100.100.100.1) 서버(200.200.200.2) -역할 -지정한 IP 주소에 데이터 전달 -패킷(Packet)이라는 통신 단위로 데이터 전달 -패킷정보 (출발지IP, 목적지IP,기타, 전송데이터) IP 프로토콜의 한계 -비연결성(패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송됨) -비신뢰성 -중간에 패킷이 사라지면(패킷 손실)? -패킷이 순서대로 안오면(World Hello,)? -프로그램 구분(같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘이상이면?) 통신 과정 인터넷 프로토콜 스택의 4계층 애플리케이션 계층(HTTP,FTP) 전송 계층(TCP,UDP) 인터넷 계층(IP) 네트워크..