-
[네트워크] HTTP #1CS/네트워크 2022. 12. 20. 13:44728x90반응형
오늘은 네트워크에 포스팅을해볼예정이다 모바일을 전공 하려면 어쩔수 없이 네트워크 통신을 공부를 해야한다고 생각한다. 내가 관심 있는 분야가 서비스 이기도 하고, 요즘은 인터넷이 없으면 어플을 사용하는 메리트가 떨어진다. 그래서 프론트엔드를 전공 하더라도 네트워크에 대한 지식은 있어야한다고 판단을 했기에 공부를 시작했다.
그래서 오늘은 네트워크 통신을 위한 내용중 기본인 http에 대해서 알아보는 시간을 가져보자
HTTP
Hyper Text Transport Protocol의 약자로 서버와 클라이언트 사이에서 어떻게 메시지를 교환할지를 정해 놓은 규칙
http는 규칙이기 때문에 정해진 양식이 존재하고 그것에 구성에 대해서 알아야한다.
- 요청과 응답으로 이루어져 있다.
- 서버와 클라이언트가 존재하면 그 둘 사이에는 데이터를 요청하며 응답을 해서 통신이 이루어진다.
- 라인, 헤더, 바디의 포맷이 포함되어 있다.
- 위에서 말한 요청과 응답이 이 포맷으로 구성되어 있는 것이다.
- 클라이언트에서 서버에 요청을 할 때 특정 형식을 갖춰서 텍스트로 전달해야하는데 그 형식을 HTTP 메세지라고 한다.
- 소켓통신과는 다르게 단방향 통신이다.
- 클라이언트는 서버에 통신할 수 있지만 서버는 클라이언트와 통신이 불가능하다.
우리는 이 중에 라인, 헤더, 바디를 잘 작성해서 요청을 해야한다. 위에서 말했듯이 서버는 클라이언트 통신이 불가능 하기 때문에 클라이언트 프로그래밍을 잘 해야한다.
라인(Line)
요청이나 응답여부, 메세지 상태 및 전송 방식을 나타내는 부분을 말한다. 한 http 메세지에 라인은 한 줄이고 제일 첫부분으로 구성 되어있다.
Post /user/userData/name HTTP/2
httpMethod 경로 http버전 순서로 구성된다. 이게 끝이다..
헤더(Header)
body에 대한 정보(요청/응답)에 대한 정보를 제공한다.
필요한 만큼 작성할 수 있으며 라인 다음으로 구성이 되어있다. 키와 값으로 이루어져있다. ex) Name:Value
종류에는 Host,Content-Type 등이 있다.
- Host
- 도메인:포트번호 형식
- Content-Type
- 바디의 타입을 나타냄 ex) Json의 경우 application/json 을 고정으로 사용
Host: quarang.swift.co.kr:1225 Content-Type: application/json
바디(Body)
본문에 내용이 있는 부분, 말그대로 몸체를 뜻함
Content-Type에서 명시한 타입과 일치해야하며 Model에서 DataSet을 작성할 때 이 규칙을 따라 작성한다.
예를 들면 바디의 있는 변수명과 타입, 우리가 swift에서 작성한 모델의 변수의 값과 타입이 정확하게 일치해야한다.
{ "userId": "quarang", "email": "quarang@gmail.com", "profileImage": "https://quarang.profile.image/user?=1" }
사실 나도 네트워크에 대해서는 많이 무지한 편이다. 하지만 이 블로그는 누군가에게 정보를 전달하려는 목적보다 내가 공부를 한 내용을 정리 하려는 목적이 있다. 그리고 내용이 많이 부실하다고 생각한다. 그래서 추가로 공부하여 알게 된 정보 부족한 설명은 점차 포스팅을 해볼 예정이다. 이렇게 오늘은 http에 대한 내용을 간단히 포스팅 해봤다.
'CS > 네트워크' 카테고리의 다른 글
[네트워크] 프로토콜 (0) 2024.06.04 [네트워크] 네트워크 구성 요소 (0) 2024.06.04 [네트워크] HTTP와 HTTPS의 차이점 (0) 2023.03.20 [네트워크] #네트워크란? (0) 2023.01.11 - 요청과 응답으로 이루어져 있다.