IT 51

[HTTP] HTTP 헤더

목차 1. 일반 헤더 2. 캐시와 조건부 요청 헤더 1. 일반 헤더 1) 헤더 개요 HTTP 전송에 필요한 모든 부가정보 표준 헤더가 너무 많음 필요시 임의의 헤더 추가 가능 1999년 표준이 폐기되고 2014년 RFC723x 등장 2) 표현 표현의 의미 HTML에 들어있는 리소스는 추상적이다. 이를 클라이언트와 서버가 주고 받을 때, 서로 이해할 수 있는 무언가로 변환해서 데이터를 전달해야한다. DB에 있는 바이너리 데이터를 그대로 전달할 수는 없으니, HTML이든 JSON이든으로 변환해서 표현하기 때문에 "표현"이라는 단어를 사용한다. 표현의 종류 1) Content-Type Content Body에 들어가는 내용이 무엇인지를 알려준다. 컨텐츠가 text/html이라면 html의 텍스트 applica..

IT/HTTP 2022.06.05

[HTTP] HTTP 상태코드

목차 1. HTTP 상태코드 소개 2. 2xx - 성공 3. 3xx - 리다이렉션 4. 4xx - 클라이언트 오류 5. 5xx - 서버 오류 1. HTTP 상태코드 소개 1xx (Informational): 요청이 수신되어 처리중(잘 사용X) 2xx (Successful): 요청 정상 처리 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 4xx (Client Error): 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 만약 미래에 새로운 상태 코드가 추가되어도 앞자리를 보고 의미를 파악하면 된다. 2. 2xx - 성공 200 OK - 요청 성공 201 Created - 요청 성공해..

IT/HTTP 2022.06.04

[HTTP] HTTP 메서드

목차 1. HTTP API 2. HTTP 메서드 3. HTTP 메서드 속성 4. HTTP 메서드 활용 5. HTTP API 설계 예시 1. HTTP API 위와 같은 요구 조건의 HTTP API 설계 시 URL을 어떻게 해야하는지에 대해 고민해보겠습니다. 1) 잘못된 HTTP API 설계 회원 목록 조회 /read-member-list 회원 조회 /read-member-by-id 회원 등록 /create-member 회원 수정 /update-member 회원 삭제 /delete-member "회원을 읽는 것" 은 리소스가 아닙니다. "회원" 자체만 리소스입니다. 따라서 API 는 아래와 같은 방식으로 작성하는 것이 좋습니다. 2) 옳은 HTTP API 설계 회원 목록 조회 /members 회원 조회 /m..

IT/HTTP 2022.06.04

[HTTP] HTTP 기본

목차 1. 클라이언트 서버 구조 2. Stateful, Stateless 3. 비연결성(connectionless) 4. HTTP 메시지 1. 클라이언트 서버 구조 Request Response 구조 클라이언트는 서버에 요청을 보내고 응답을 대기 서버가 요청에 대한 결과를 만들어서 응답 2. Stateful, Stateless Stateful 상태 유지에서는 다른 서버로 바뀌면 장애가 납니다. 문맥이 사라지기 때문입니다. 예를 들어 노트북을 구매한다고 할 때 우리는 무엇을 몇 개, 어떤 방식으로 구매할지 정보를 서버에 제공해야 합니다. 이 각각의 정보들을 따로따로 전달한다면, 중간에 전달받는 서버가 바뀌지 않아야 합니다. 추가적인 정보가 들어올 때, 그 전에 있던 정보를 기억하지 못하는 새로운 서버라면 ..

IT/HTTP 2022.06.03

[HTTP] 인터넷 네트워크

목차 1. IP(인터넷 프로토콜) 2. TCP 3. UDP 4. PORT 5. DNS 6. URL 7. 웹 브라우저 요청 흐름 1. IP(인터넷 프로토콜) 1) 역할 지정한 IP주소(IP Address)에 데이터 전달 패킷(Packet)이라는 통신 단위로 데이터 전달 2) 통신과정 클라이언트에서 출발지, 목적지 등의 정보를 패킷에 담아 서버로 전송한다. 서버에서 출발지, 목적지 등의 정보를 패킷에 담아 클라이언트로 전송한다. 이 과정에서 지나치는 노드는 일정하지 않다. 3) 한계 비연결성: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송한다. 비신뢰성: 패킷이 오다가 사라지거나 순서대로 오지 않을 수 있다. 프로그램 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면 구분할 ..

IT/HTTP 2022.06.01

[Android] 카카오링크 앱 연결시 앱실행 안되는 문제 해결하기

카카오링크 앱 연결시 앱실행 안되는 문제 해결하기 카카오 링크에서 앱 실행하기 버튼을 클릭했을 경우, 앱이 다운로드 되어있을 때에는 어플이 실행되어야하는데 다음과 같이 플레이스토어만 나오게 됩니다. 데브톡을 찾아보니 SCHEME 등록 문제일 가능성이 굉장히 높다고 하는데.. 잘 등록이 되어있는데 왜일까요?? 답은 외부 스키마 에 있습니다. 모바일 환경에서 위와 같은 링크(스킴)를 눌렀을 때 해당 앱이 설치 되어 있다면 실행되는 적이 있었습니다. 혹은 문자메시지에서 링크를 누르면 앱이 자동으로 실행되거 했었습니다. 이렇게 외부에서 앱을 실행시킬 수 있는 방법을 외부 스키마 라고 합니다. 주황색 박스와 빨간색 박스를 잘 봐주세요 주황색 박스의 코드는 제 어플리케이션이 처음 동작하는 Activity이고 빨간색..

IT/디버깅 2022.06.01

InvalidDataAccessApiUsageException: id to load is required for loading에러 해결

InvalidDataAccessApiUsageException: id to load is required for loading에러 해결 이런식으로 entity 매니저와 관련된 에러가 발생 코드 원인 Id 부분의 값이 load되지 않아서 발생한 에러임 Book Class의 id가 @GeneratedValue로 되어 있기 때문에 id를 생성하려면 엔티티를 DB에 저장해야 하는데 JPA에서 persist를 하지 않았기 때문 해결 코드 em.persist 로 DB에 저장해 Id를 받을수 있게 하여 해결

IT 2022.05.27

파이썬 2차원 배열 선언 이해하기 (깊은 복사 얕은 복사)

array = [[0] * 3 for _ in range(3)] array = [[0] * 3] * 3 위의 코드를 출력해보면 겉으로 보기엔 똑같습니다. 하지만 array[0][1] = 1을 넣고 출력해보면 결과가 다릅니다. 왜 이런 결과가 나오는지는 immutable 객체와 mutable 객체로 설명할 수 있는데, mutable - 변경 가능 객체 immutable - 변경 불가능 객체 mutable 객체에는 list,set,dictionary 정도가 있고 immutable 객체에는 int, float, tuple, str, bool 등이 있습니다. immutable 객체는 깊은 복사를 하고 mutable 객체는 얕은 복사를 합니다. array = [[0] * 3] * 3 array = [[0] * 3..

IT 2022.04.27
728x90