Web/HTTP11 TCP TCP 1. 장치들 사이에 논리적인 접속을 성립하기 위한 연결을 설정해 신뢰성을 보장하는 연결형 서비스이다. 2. 데이터 순서를 보장한다. - 서버에서 패킷 순서가 잘못 도착한 경우, 잘못된 순서부터 다시 보내라고 요청 3. 3 way handshaking 과정을 통해 연결 설정, 4 way handshaking을 통해 연결 해제 3 way handshaking - TCP 통신을 이용해 데이터를 전송하기 위해 네트워크 연결을 하는 과정이다. - 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 실제로 데이터 전달이 시작하기 전에 한 쪽이 다른 쪽에 준비되었다는 것을 알 수 있도록 하는 것이다. - 과정 1. A -> B (SYN): 접속 요청 프로세스 A가 연결 요청 메시지를 전송한다. 2. B.. 2022. 2. 10. 일반 Header Header 종류 1. General Header: 메시지 전체에 적용되는 정보에 대한 표현 2. Request Header: 요청에 대한 정보 3. Response Header: 응답에 대한 정보 4. Entity Header: Entity Body에 대한 정보 ex) Content-type: application/json HTTP message는 Header와 Body로 구성되는데, 각각을 표현 헤더와 표현 데이터라고 칭한다. 표현이란 요청이나 응답에서 전달하는 실제 데이터를 말하며, 표현 헤더는 표현 데이터를 해석할 수 있도록 데이터 유형, 데이터 길이와 같은 정보를 제공한다. 표현 헤더 • Content-Type: 표현 데이터의 타입 미디어 타입, 문자 인코딩 정보를 넣어준다. ex) text/h.. 2021. 10. 4. HTTP Status - 상태코드 2XX - 요청 정상 처리 • 201 Created - 요청이 성공적으로 처리되어 새로운 리소스가 생성되었음을 의미한다. - 생성된 리소스는 응답의 Location 헤더 필드로 식별할 수 있다. - POST 요청으로 신규 리소스를 생성했을 때 응답이다. • 204 No Content - 요청을 성공적으로 처리했으나, 응답 Payload에 보낼 데이터가 없음을 의미한다. - 웹 문서 편집기에서 [저장]을 요청할 경우가 대표적인 예시이다. - [저장]의 결과로 어떤 내용도 없어도 괜찮다. - [저장]을 하더라도 같은 화면을 유지해야 한다. 3XX (Redirection) - 요청을 완료하기 위해서 추가 행동이 필요 • 웹 브라우저는 3XX 응답에 Location 헤더가 존재하면, Location 위치로 이동.. 2021. 9. 27. HTTP Method 활용 행복했던 명절 연휴 마지막 날... HTTP Method가 어떻게 활용되는 지 알아보자! 1. 데이터 전송 방식 (클라이언트 -> 서버) 1. 쿼리 스트링(파라미터)를 이용한 데이터 전송 방식 • GET 2. body를 이용한 데이터 전송 방식 • POST, PUT, PATCH 2. 데이터 조회 및 전송 1. 정적 데이터 조회 • 이미지와 같은 정적 리소스 • 쿼리 파라미터를 사용하지 않고 리소스 경로(URI)를 통해 조회가 가능하다. • GET 방식 2. 동적 데이터 조회 • 검색, 목록에 대한 정렬 필터 시 주로 사용 • GET 방식과 쿼리 파라미터를 사용해 데이터를 전달한다. 3. HTML Form을 이용한 데이터 전송 • 회원 가입, 상품 주문과 같은 데이터 변경 시 사용 • POST와 GET 방.. 2021. 9. 22. HTTP API 설계 용어 HTTP API URI 설계 용어 문서 (document) 하나의 파일, 객체 인스턴스, DB row과 같은 단일 개념을 말한다. ex) /files/image.png 컬렉션 (collection) 서버가 관리하는 리소스 저장소를 말한다. 서버가 리소스의 URI를 생성하고 관리한다. POST 방식을 통해 신규 리소스를 생성시에 사용되는 URI 타입이다. ex) /users 스토어 (store) 클라이언트가 관리하는 리소스 저장소를 말한다. 클라이언트가 리소스의 URI를 인지하고 관리한다. 파일같은 리소스를 관리할 때 사용된다. ex) /files 컨트롤 URI 위 3개의 개념으로 해결하기 어려운 프로세스를 실행하기 위해 사용되는 개념이다. URI에 동사를 이용해 사용한다. ex) /users/{id}/d.. 2021. 9. 14. POST와 PUT 1. POST 1. 리소스 생성 2. URI가 컬렉션이어야 한다. (ex. POST /users) 3. 리소스 생성 성공 시, 201(CREATED) HTTP STATUS와 함께 리소스 생성 위치 정보가 담긴 Location 응답 헤더를 포함한다. ※ 사용해야 하는 경우 a. 리소스 생성 b. 요청 데이터 처리 c. 다른 메서드로 처리하기 애매한 경우 2. PUT 1. 리소스 변경, 없는 경우에는 생성 2. URI에 변경할 리소스의 식별자가 포함되어야 한다. (ex. PUT /users/100) ※ PATCH와의 차이점 a. PUT은 파일 덮어쓰기와 같다. 따라서, 수정할 부분에 대해서만 명시할 경우, 명시되지 않은 부분은 null 혹은 default로 처리 된다. b. PATCH는 부분적으로 수정하는 .. 2021. 9. 6. HTTP란 무엇인가? REST API를 개발하기 위해서는 HTTP에 대한 지식은 기본적으로 알고 있어야 한다고 생각해 간단하게 정리를 해보고자 한다. HTTP (Hyper Text Transfer Protocol) 말 그대로 인터넷에서 데이터를 주고 받을 수 있는 프로토콜, 규약을 말한다. 1. html, text, image를 포함한 거의 모든 형태의 데이터 전송이 가능하다. 2. 서버 간에 데이터를 주고 받을 때 사용한다. 특징 Stateful (상태 유지) 서버가 상태를 유지하지 않기 때문에, 서버가 바뀌면 클라이언트의 이전 상태에 대해 알 수 없다. 로그인과 같이 상태를 유지해야 하는 경우에 사용한다. (Session) ex) A, B 2개의 WAS 서버가 있다고 가정할 때, 사용자가 A 서버에서 로그인을 했다면 서버.. 2021. 8. 23. [HTTP] Cookie와 Session?! HTTP 프로토콜은 연결 지향적인 성격을 버려(Connectionless, 비연결지향) 새로운 페이지를 요청할 때마다 새로운 접속이 이루어진다. 이로 인해 이전 페이지와 현재 페이지 간의 관계가 지속되지 않게 된다. 따라서 특정 사용자가 머무르고 있는 동안에 그 사용자의 상태를 지속시키기 위해 Cookie와 Session이라는 개념이 사용된다! Cookie - HTTP의 일종으로 사용자가 웹 사이트를 방문할 경우 그 사이트의 서버에서 사용자의 PC에 저장하는 정보이다. - 클라이언트 PC에 텍스트 파일로 저장되어 해당 웹 사이트를 다시 방문했을 경우 이 정보를 사용한다. - 클라이언트 PC에 저장되기 때문에 다른 사용자에 의해 임의로 변경이 가능해 보안 취약점이 존재한다. - 동작 순서 Client가 페.. 2021. 3. 27. [HTTP] GET과 POST의 차이! GET과 POST는 모두 자주 사용되는 HTTP Method(서버가 요청을 수행하기 위해 해야 할 행동)이다. 이번 포스팅에서는 이 둘의 차이점에 대해 알아보자! 1. GET - 서버로부터 정보를 조회하기 위해 Idempotent하게 설계된 Method이다. - 서버에 동일한 요청을 여러 번 전송하더라도 동일한 응답이 돌아와야 한다. - 주로 데이터를 조회할 때 사용한다. - 요청을 전송할 때, 필요한 데이터를 Body에 담지 않는다. - QueryString을 사용해 필요한 데이터를 전달하고, 이에 따라 길이의 제한이 존재한다. https://aaa.com?name=honggildong&id=sample 물음표 이후의 문자열을 QueryString이라 부른다. - GET은 불필요한 요청을 제거하기 위해.. 2021. 3. 22. 이전 1 2 다음