Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 코틀린
- CustomView
- Algorithm
- sqlite
- 알고리즘
- Coroutine
- onLayout
- DataBinding
- AppBarLayout
- ViewModel
- onMeasure
- LiveData
- 안드로이드
- recyclerview
- hilt
- Behavior
- notification
- 백준
- BOJ
- HTTP
- View
- 알림
- kotlin
- activity
- room
- Android
- CollapsingToolbarLayout
- lifecycle
- CoordinatorLayout
- Navigation
Archives
- Today
- Total
개발일지
Android in A..Z - HTTP (개념) 본문
HTTP (Hypertext Transfer Protocol)
웹 브라우저와 웹 서버 간의 통신을 하기 위한 규약이다.
특징
- HTTP는 서버/클라이언트 모델을 따른다.
- 비연결 지향
- 클라이언트가 Request를 보내면, 서버는 클라이언트의 요청에 맞는 Response를 보내고 연결을 끊는다.
- 연결이 끊어지면 서로의 정보를 유지하기 때문에 정보를 잃는다. => 쿠키와 세션으로 해결가능
- 지속적으로 연결되는 형태가 아니기 때문에 불특정 다수를 대상으로 서비스하기 좋고, 많은 요청을 처리할 수 있다.
HTTP Request Message
- Start Line : HTTP 시작부분
- HTTP Method
- Request Target(목표 주소)
- HTTP Version
- HTTP Header
- Host : Host URL Address
- User-Agent : Client 정보(브라우저 정보)
- Connection : 요청이 끝난 후 연결을 어떻게 처리할 지 알려주는 헤더
- keep-alive : 연결을 유지한다.
- close : 연결을 종료한다.
- Content-Type : 메시지 HTTP Body 타입을 알려준다. ex) application/json, applicaion/x-www-urlencoded
- Content-Length : HTTP Body의 Size
- HTTP Body : HTTP Message에 포함할 내용
HTTP Response Message
- Start Line : HTTP 시작부분
- HTTP Version
- Status Code : 응답 코드
- Status Message : 응답 메시지
- HTTP Header : Request Message의 Header와 동일하다. (User-Agent 대신 Server가 들어감)
- Server : Server 정보
- HTTP Body : HTTP Message에 포함할 내용
HTTP Method
www.w3schools.com/tags/ref_httpmethods.asp
GET
정보를 요청할 때 사용한다(SELECT).
- 데이터(파라미터)를 보낼 때 쿼리 스트링 형식으로 URL뒤에 붙여서 보낸다.
- URL에 데이터를 붙여서 보내기 때문에 브라우저 북마크 기능으로 저장할 수 있다.
- URL에 데이터를 붙여서 보내기 때문에 브라우저 히스토리에 저장될 수 있으며 보안이 안좋다.
- URL에 데이터를 붙여서 보내기 때문에 데이터의 길이 제한과 타입 제한이 있다. (2048자, ASCII Code만 허용)
- 보통 동일한 GET Request를 보내면 동일한 Response를 받는다. (서버에서 데이터가 변하지 않는 이상)
- 캐쉬를 사용하기 때문에 빠르다.
POST
서버에 정보를 보내어 자료를 생성하거나 업데이트할 때 사용한다.
- 데이터(파라미터)를 보낼 때 HTTP Body에 담아서 보낸다.
- HTTP Body에 데이터를 담아서 보내기 때문에 브라우저 히스토리에 저장되지 않아 보안이 좋다.
- HTTP Body에 데이터를 담아서 보내기 때문에 브라우저 북마크 기능을 사용할 수 없다.
- HTTP Body에 데이터를 담아서 보내기 때문에 데이터의 길이 제한과 타입 제한이 없다.
- 보통 동일한 POST Request를 보내도 동일한 Response를 받지 않는다.
- 캐쉬를 사용하지 않기 때문에 느리다.
PUT
서버에 정보를 보내어 자료를 생성하거나 업데이트할 때 사용한다.
- 동일한 PUT Request를 보내면 동일한 Response를 받는다. => 멱등법칙, POST와 차이점
HEAD
GET과 비슷하지만 Response Message에 HTTP Body가 없다.
=> GET이 정상작동 하는지 확인할 때 유용하다. (만약 GET을 보낼 때 대용량의 HTTP Body가 담겨져 오는 Response라면 HEAD로 미리 확인할 수 있다.)
DELETE
서버에서 특정한 자료를 삭제할 때 사용한다.
'Android (안드로이드) > HTTP' 카테고리의 다른 글
Android in A..Z - HTTP (Retrofit2) (0) | 2021.03.16 |
---|---|
Android in A..Z - HTTP (Volley) (0) | 2021.03.16 |
Android in A..Z - HTTP (URLConnection) (0) | 2021.03.12 |
Comments