일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 동기화
- Apple Developer Academy
- core data
- 데드락
- UserDefaults
- 인프런
- 100 days of SwiftUI
- Linked List
- Swift
- 동시성
- 운영체제
- scrollview
- struct
- IOS
- 알고리즘
- 가상 메모리
- 앨런
- Codable
- COLOR
- forEach
- SwiftUI
- 오브젝트
- deadlock
- @state
- async
- Algorithm
- 프로세스 스케줄링
- 상호배제
- 비동기
- decode
Archives
- Today
- Total
기어가더라도 제대로
HTTP Accept type header 와 Content-Type header 의 차이점 본문
HTTP 메시지는
요청 메시지와 응답 메시지로 나뉜다.
메시지는 자기 자신의 데이터에 대한 정보를 Header(메시지 내부)에 담아서 보낸다.
즉, Header 는 데이터에 대한 메타 데이터이다. (정보의 정보)
그래서 공부를 하다가,
- Response Headers
- Content-Type
- Request Headers
- Accept
이렇게 있길래 지금 네트워크 프로그래밍에서 요청을 보낼 때 Accept Header 만 보냈는데, 도무지 응답이 오질 않는 것이였다.
같이 페어하는 짝에게 물어보니 왜 인지 모르겠으나, Content-Type 도 담아주면 된다는 것이였다.
나는 약간 상기되어서
다마고치: "Request 인데 왜 Content-Type을 담아요? 진짜 궁금해서 (씨익씨익)"
페어: ... 잘모르겠어요
그렇게 하니 응답이 왔다. 그러나 찝찝한 이 기분..
검색을 해보니까 Content-Type 은 Response 와 Request 모두에 담는 Header 였다. !!
- Content-Type 헤더
- HTTP 메시지(요청과 응답 모두)에 담겨 보내는 데이터의 형식을 알려주는 헤더
- 대부분의 HTTP 표준 스펙을 따르는 브라우저와 웹서버는 이 헤더를 기준으로 HTTP 메시지에 담긴 데이터를 분석
- 이 값을 비워두면 데이터가 text 형식이라고 웹서버는 판단해서 해석을 함.
- GET 방식에서는 굳이 달아주지 않아도 된다.
- 무조건 URL 끝에 쿼리스트링으로 key=value 형식으로 들어가기 때문
- POST, PUT 에선 반드시 달아주어야 한다.
- 메시지 BODY 에 데이터를 싣어나르기 때문에 Body 의 형태가 application/json 이라는 것을 밝혀야함.
- 첨부파일일 땐 알아서 브라우저가 multipart/form-data 로 보냄
- Accept 헤더
- 클라이언트엣허 웹서버로 요청시 요청 메시지에 담기는 헤더
- 자신에게 이러한 데이터 타입만 허용하겠다는 뜻
- "웹서버야 나는 'application/json' 만 받고 싶어"
- 이를 따를지는 웹서버 마음
- 정리
- 두 헤더 모두 데이터 타입을 다루는 헤더이지만
- Content-Type 헤더는 현재 전송하는 데이터가 어떤 타입인지에 대한 설명이고
- Accept 헤더는 클라이언트가 서버에게 웬만하면 데이터 전송시에 이러한 타입으로 가공해서 보내라하는 것과 같음
'기타' 카테고리의 다른 글
20220703 TIL (0) | 2022.07.03 |
---|---|
이모지를 xcode 에서 이름 알려주는 프로그램 (0) | 2022.06.30 |
홈 커밍 데이 (0) | 2022.06.05 |
220530 TIL (0) | 2022.05.30 |
Swift 220511.til (0) | 2022.05.11 |
Comments