본문 바로가기

프로그래밍/Web Basic30

HTTP 헤더 HTTP 헤더 1. HTTP 전송에 필요한 모든 부가정보 예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리정보 등 2. 표준 헤더가 많다. https://en.wikipedia.org/wiki/List_of_HTTP_header_fields 3. 필요시 임의의 헤더 추가 가능 예) helloworld: hihi HTTP BODY RFC7230 버전(최신) 1. 메시지 본문(message body)을 통해 표현 데이터 전달 2. 메시지 본문을 페이로드(payload)라고 한다. 3. 표현은 요청이나 응답에서 전달할 실제 데이터 4. 표현 헤더는 표현 데이터를 해석할 수 있는 정보 제공 - 데이터 유형(html, json), 데이터 길이, 압축 정보 등등.. 2023. 8. 1.
상태코드 400, 500 4xx (Client Error) 1. 클라이언트의 요청에 잘못된 문법 등으로 서버가 요청을 수행할 수 없음. 2. 오류의 원인이 클라이언트에게 있다. 3. 클라이언트가 이미 잘못된 요청, 데이터를 보내고 있기 때문에 똑같은 재시도가 실패한다. 400 Bad Request 클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 수 없음 1. 요청 구문, 메시지 등등 오류 2. 클라이언트는 요청 내용을 다시 검토하고, 보내야 한다. 예) 요청 파라미터가 잘못되거나, API 스펙이 맞지 않을 때 401 Unauthorized 클라이언트가 해당 리소스에 대한 인증이 필요함 1. 인증(Authentication) 되지 않음 2. 401 오류 발생시 응답에 WWW-Authenticate 헤더와 함께 인증 방법을 설.. 2023. 8. 1.
상태 코드 200, 300 상태코드 클라이언트가 보낸 요청의 처리 상태를 response에서 알려주는 기능 - 1xx (Informational) 요청이 수신되어 처리중 - 2xx (Successful) 요청 정상 처리 - 3xx (Redirection) 요청을 완료하려면 추가 행동이 필요 - 4xx (Client Error) 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 - 5xx (Server Error) 서버 오류, 서버가 정상 요청을 처리하지 못함 2xx (Sucessful) - 200 OK - 201 Created - 202 Accepted - 204 No Content 202 Accepted 요청이 접수 되었으나 처리가 완료되지 않았음 - 배치 처리 같은 곳에서 사용 - 요청 접수 후 1시간 뒤 배.. 2023. 8. 1.
URI 설계 예시(POST, PUT, HTML Form) 회원관리 시스템(API 설계 - POST 기반 등록) 1. 회원 목록 /members => GET 2. 회원 등록 /members => POST 3. 회원 조회 /members/{id} => GET 4. 회원 수정 /members/{id} => PATCH, PUT, POST 5. 회원 삭제 /members/{id} => DELETE POST 신규 자원 등록 특징 1. 클라이언트는 등록될 리소스의 URI를 모른다. - 회원 등록 /members => POST 2. 서버가 새로 등록한 리소스 URI를 생성해준다. - HTTP/1.1 201 Created Location: /members/100 3. 컬렉션(Collection) - 서버가 관리하는 리소스 디텍토리 - 서버가 리소스의 URI를 생성하고 관리 -.. 2023. 8. 1.
HTTP 메서드의 속성, 데이터 조회, HTML Form HTTP 메서드의 속성 1. 안전(Safe Methods) 2. 멱등(Indempotent Methods) 3. 캐시 가능(Cacheable Methods) 안전 호출해도 리소스를 변경하지 않는다. 호출을 많이 해서 서버가 터지면 abc%EA%B9%80 3. HTML form은 GET 전송도 가능 4. Content-Type: multipart/form-data 파일 업로드 같은 바이너리 데이터 전송시 사용 다른 종류의 여러 파일과 폼의 내용 함께 전송 가능(multipart) 출처: HTTP 웹 기초 강의(김영한) 2023. 7. 31.
HTTP 메서드 HTTP 메서드 종류 1. GET: 리소스 조회 2. POST: 요청 데이터 처리, 주로 등록에 사용 3. PUT: 리소스 대체, 리소스가 없으면 생성 4. PATCH: 리소스 부분 변경 5. DELETE: 리소스 삭제 GET 1. 리소스 조회 역할 2. 메시지 바디를 사용하지 않고 주로 쿼리 파라미터를 사용한다. POST 처리 예시 1. HTML FORM에 입력한 정보로 회원가입, 주문 등에 사용 2. 게시글 글쓰기, 댓글 달기 3. POST 요청은 리소스에 처리에 대한 주어진 양식은 없다. (애매하면 post) PUT 1. 기존 리소스를 대체한다. (없으면 생성, 있으면 대체) 2. 클라이언트가 리소스의 위치를 알고 있다는 점에서 POST와 다르다. PATCH 1. 리소스 부분 변경 DELETE 1... 2023. 7. 30.
비연결성, HTTP 요청과 응답 메시지 비연결성(Connectionless) 1. HTTP는 기본이 연결을 유지하지 않는 모델 2. 초 단위 이하의 빠른 속도로 응답 3. 웹 사이트 내에서 요청을 동시에 처리하는 상황은 매우 적다. (예외: 특정 시간에 할인 이벤트) 4. 서버 자원을 효율적으로 이용한다. 주로 게임, 화상 회의 등에서 socket 형태로 사용한다. 요청 - 응답 사이클 이후에 연결을 유지하지 않는다. 비연결성의 한계와 극복 1. TCP/IP를 새로 맺어야 한다. (3 way handshaking 시간 추가) 2. 웹 브라우저는 HTML뿐만 아니라 자바스크립트, css, 추가 이미지 등 많은 자원이 함께 다운로드 된다. 3. 지금은 HTTP 지속 연결(Persistent Connections)로 문제 해결 4. HTTP/2, .. 2023. 7. 30.
HTTP, Stateful과 Stateless HTTP(HyperText Transfer Protocol) HTTP로 전송하는 것들 1. HTML, Text, 이미지, 음성, 영상, 파일 2. JSON, XML 3. 서버간 데이터 HTTP 역사 HTTP/0.9 1991년: GET 메서드만 지원, HTTP 헤더X • HTTP/1.0 1996년: 메서드, 헤더 추가 • HTTP/1.1 1997년: 가장 많이 사용, 우리에게 가장 중요한 버전 • RFC2068 (1997) -> RFC2616 (1999) -> RFC7230~7235 (2014) • HTTP/2 2015년: 성능 개선 • HTTP/3 진행중: TCP 대신에 UDP 사용, 성능 개선 기반 프로토콜 TCP: HTTP/1.1, HTTP/2 UDP: HTTP/3 현재 HTTP/1.1을 주로 사용(.. 2023. 7. 30.
PORT, DNS, URL PORT 같은 IP 내에서 프로세스를 구분하는 역할을 한다. 0~65535: 할당 가능 0~1023: 잘 알려진 포트(사용하지 않는 것이 좋다) FTP: 20, 21 Telnet: 23 http: 80 https: 443 DNS(Domain Name System) IP는 기억하기 어렵다. IP는 변경될 수 있다. 전화번호부에 비유 도메인 명을 IP주소로 변환한다. URL 구조 웹브라우저 요청 흐름 1. 웹 브라우저가 HTTP 요청메시지 생성 2. TCP/IP 패킷 생성(IP, PORT 정보) 2023. 7. 29.
IP 인터넷 프로토콜, TCP/UDP IP 인터넷 프로토콜의 역할 지정한 IP주소에 데이터 전달 패킷이라는 통신 단위로 전달 패킷에는 어떤 정보가 있을까? 출발지 IP, 도착지 IP 정보 IP 프로토콜의 한계 1. 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 2. 비신뢰성 중간에 패킷이 사라지면? 패킷이 순서대로 안 오면? 패킷은 서버를 타면서 이동하기 때문에 보내는 패킷이 항상 같은 경로로 이동한다는 보장이 없다. 3. 중복 IP 문제 같은 IP를 사용하는 서버에서 통신하는 어플리케이션이 둘 이상인 경우? 어플리케이션단 프로그램으로 메시지를 전달하면, socket 라이브러리를 통해 전달이 되고 TCP/IP 패킷을 생성한다. 이후 네트워크 장비를 통해 메시지가 전달된다. TCP 특징 연결 지향, 3 way handsh.. 2023. 7. 29.