✏️ 2022-08-24 Today I Learn

@mitoconcrete · August 24, 2022 · 3 min read

1. form 을 통한 데이터 전송 시 http contents type

  • aplication/x-www-form-urlencoded : string을 인코딩해서 전달해야 하기 때문에 urlencoded 라는 타입을 명시하여 사용한다.
  • multipart/form-data : 이미지 전송 시, 바이너리 파일로 여러 파트를 끊어서 보내야 할 경우 사용한다.

2. HTML form으로 GET요청도 가능하다.

3. PUT은 일부 업데이트가 아니다.

기존의 리소스를 삭제하고 다른 리소스로 갈아치우는 것이기 때문에, 주의하여 사용해야한다.

4. PATCH는 리소스의 일부 업데이트를 의미한다.

5. HTTP 메소드의 속성

  • 안전 : 호출해도 리소스를 변경하지 않는다.

    • GET, HEAD, OPTION, TRACE
  • 멱등 : 여러번 호출해도 같은 결과를 보여준다.

    • GET, PUT, DELETE
  • 캐시 : 응답결과의 리소스를 반복하여 사용가능하다.

    • GET, HEAD
    • POST, PUT : 캐시키를 이용해 body값까지 모두 캐싱해야하기 때문에 번거로워서 잘 쓰이지 않는다.

6. 메서드 설계 시 리소스에 해당되는 것은 '명사'이다.

ex) 미네랄을 캔다 에서 캔다가 중요요소가 아니라 미네랄을 기준으로 메서드를 설계해야한다. GET /minerals -> O GET /dig -> X

7. GET은 스펙상으로 body를 붙힐 수 있다.

구현이 되지 않은 서버가 많은 것일 뿐.

8. HEAD는 body를 붙힐 수 없는 GET이라고 보면된다.

9. POST는 리소스 상태의 변경을 위한 용도로도 사용된다.

POST /car/{id}/start
POST /car/{id}/stop

이때는 메서드에 동사를 사용한다.

10. POST와 PUT의 차이는 리소스의 정보를 어디서 알고있느냐의 차이다.

  • POST : 리소스의 생성을 요청하면, 서버에서 생성정보를 보내줌
  • PUT : 클라이언트에서 업데이트 할 리소스를 정해서 보내줌. 이 때, 클라이언트 내에 스토어로 리소스를 따로 관리해줘야하는 전제조건이 있다.

11. 배열은 연속되는 순서로 메모리를 차지한다. 인덱스 값은 연속되지만, 주소값은 반드시 연속되어 증가하지 않는다.

12. 자바스크립트 배열은 해시맵과 같아서, 논리값 할당이 가능하다. 단, 배열의 실제길이에 영향을 주지는 않는다.(사용권장X)

13. 연결리스트는 메모리를 순서대로 차지하지 않는다.

@mitoconcrete
어제보다 조금 더 성장하기 위해 기록합니다.