일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Xcode
- Human interface guide
- Observable
- MVVM
- uitableview
- UICollectionView
- swift documentation
- RxCocoa
- ios
- Refactoring
- 리펙터링
- SWIFT
- tableView
- ribs
- map
- rxswift
- HIG
- UITextView
- Protocol
- 애니메이션
- 리팩토링
- combine
- 스위프트
- Clean Code
- collectionview
- 클린 코드
- uiscrollview
- 리펙토링
- clean architecture
- swiftUI
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] 1. 서버 - HTTP, RESTful API 본문
1. HTTP(HyperText Transfer Protocol) 구조
1) 종류
- 라인 : 응답/요청 여부, 메시지 전송 방식, 상태 정보
- 헤더 : 메시지 본문에 대한 메타 정보
- 바디 : 보내고자 하는 메시지(데이터)
*실제 HTTP메시지
첫 줄 : 무조건 : 라인 (GET방식인 경우는 바디 포함)
이후 ~ '\n'까지 : 헤더
마지막줄 : 바디 (GET방식인 경우는 존재 x)
* GET방식은 라인에 데이터 삽입(~1024Byte)
'?'를 기준으로 오른쪽 내용이 "query string"이며 세미콜론으로 구별
여백이 있으면 이어서 라인 정보(예시 ... HTTP/1.1)
2) 라인
* 전송방식
웹 브라우저에서는 GET(요청), POST(ID없이 리소스 생성, 수정)만 존재하지만,
REST에서는 GET, POST, PUT(ID기반 리소스 생성, 수정), DELETE, HEAD(GET방식, 단 내용정보 없이 메타정보만 요청), OPTIONS(특정 URL에 대한 보조)존재
3) 헤더
- 도메인 및 포트번호
- Content-Type : 메시지 본문(바디)가 어떤 형식인지 선언
(POST방식 : application/x-www.form-urlencoded)
(JSON방식 : application/json)
4) 바디
*전송하고자 하는 값
1
|
account=imustang%40naver.com&passwd=123&grant_type=password
|
위와 같은 경우는
account = imustang@naver.com
passwd = 123
grant_type = passe=word
※ 단, 문자열 중간에 &문자열을 넣고 싶다면 -> '%26' 으로 넣어야함
2. HTTPS (HTTP Security)
- 공개키와 개인키 인증서를 이용하여 메시지를 암호화 한 후 전달함으로써 중간에서 열어볼 수 없도록 하는 것
※HTTPS통신은 유료(50만원~110만원)
3. RESTful API
1) REST(Representational State Transfer) : 네트워크 자원을 정의하고 자원에 대한 주소를 관리하는 방법 (데이터를 HTTP기반으로 간단히 주고 받기 위해 정의된 형식의 인터페이스)
아래의 방법으로 CRUD진행하는 방법이 RESTful APU
- Create : 생성(POST)
- Read : 조회(GET)
- Update : 수정(PUT)
- Delete : 삭제(DELETE)
- HEAD: header 정보 조회(HEAD)
2) RESTful : REST구조를 따라 구현된 시스템
3) RESTful API : RESTful 기반으로 서버에서 요청과 응답을 주고 받을 수 있도록 정의된 형식
4) JSON(JavaScript Object Notation) : 자바스크립트 언어에서 객체의 속성을 표현하기 위한 방버브로 사용하기 시작한 데이터 구조
- 딕셔너리와 리스트 구조 (밑 링크 참조)
https://ios-development.tistory.com/26?category=889410
- NSDictionay, NSArray를 주로 쓰며 수정 불가하므로 NSMutableDictionary도 이용
(아직 swift의 Dictionary보다 NSDictionary타입을 요구하는 메소드가 많기 때문에 NSDictionary사용)
- 아이템 : JSON배열 내부에 들어가는 항목
'iOS 실전 (swift) > 서버' 카테고리의 다른 글
[iOS - swift] 6. 서버 - OAuth, Key Chain, 로그인 관리 토큰 (0) | 2020.04.25 |
---|---|
[iOS - swift] 5. 서버 - Indicator View (버퍼링 표현) (0) | 2020.04.25 |
[iOS - swift] 4. 서버 - Alamofire를 이용한 회원가입 요청, 응답 (0) | 2020.04.24 |
[iOS - swift] 3. 서버 - Alamofire (RESTful API) (0) | 2020.04.24 |
[iOS - swift] 2. 서버 - RESTful API 실습 (Foundation framework사용) (0) | 2020.04.24 |