REST API란 무엇인가. 면접갔을때 자주 듣는 질문중 하나다. 뭐 이런저런 대답들을 하겠지만 대부분 이 그 답변안에 이런 내용이 있을것이다. "조회는 GET, 등록은 POST, 수정은 PUT, 삭제는 DELETE를 이용한다." 이중 GET이랑 DELETE는 비교적 명확한데 반해(이름에서부터...) POST랑 PUT은 약간 헷갈리는 부분이 있었다. 그래서 두 메서드가 의미하는 바가 어떤 차이가 있는지 알아봤다. 이것저것 찾아봤는데.. 일단 역시 공식문서가 제일 잘돼있었다. POST post 메서드는 기존에 알고있던대로 등록에 관한 내용이다. http 메세지로 넘어온 엔티티를 새로운 자원으로 등록한다. 새로운 자원으로 등록하지않을 수도있는데 이런 경우엔 200(ok)이나 204(no content) re..
크롤링 봇들은 항상 웹을 탐색하고다닌다. 전 회사에 재직중인시절 모니터링 시스템에 로그인하지않은 사용자가 자꾸 특정 api를 요청한다는 알림이 와서 봤더니 google bot 이라는 user agent를 담고있는 구글 크롤러를 만난적도 있다. 이런 크롤러들은 웹의 여기저기를 찌르고다니지만 경우에따라서 크롤러에게도 공개하고싶지않은 리소스나 특정 크롤러는 아예 접근하지못하게 하고싶은 경우도 있을 수 있다. 그럴때 사용하는것이 루트 url의 robots.txt 이다. txt라고해서 무조건 정적 텍스트 파일을 반환해야하는것은 아니며 /robots.txt 로 get 요청을 날렸을때 Content-type: text/plan 형태의 문자 데이터만 반환하면 된다. http header 포맷과 비슷하게 반환하면 되는데..
HTTP 메세지 형식에 대해 알아보자. 요즘 자바로 그냥 간단한 웹서버를 만들어보고 있는데 HTTP 메세지 파싱을 하기위한 코드가 매우 지저분하다. HTTP 메세지에 이런 규약이 있다는걸 모르는 상태에서 코드를 작성하다보니 숱한 분기문이 등장하게 된건데 이런 형식이 있다는걸 알았으면 좀 더 깔끔해질것 같다. 1. 요청(Request) 메세지 [메서드] [URL] [버전] [헤더] [바디] 메서드 : HTTP method ex. GET, POST, PUT, DELETE, OPTION, HEAD... URL : 요청URL ex. www.naver.com 버전 : HTTP version ex. http/1.1 헤더 : HTTP header ex. Content-type: application/json 바디 :..
100번대 : Informational(리퀘스트 처리중) 200번대 : Success(리퀘스트 처리완료)200(OK) : 처리 성공204(No Content) : 처리는 성공했으나 response body가 비어있음206(Partial Content) : 서버가 Range에 의해 부분적 리퀘스트를 받았음, Response에 Content Range가 포함 300번대 : Redirection(리퀘스트 처리를 위해 추가 작업 필요)301(Moved Permanently) : 요청이 들어온 URI가 변경되었음을 알림302(Found) : 요청이 들어온 URI가 '잠시' 변경되었음을 알림303(See Other) : 302와 같지만 리다이렉트 시 GET메서드로 이동하게끔 함304(Not Modified) : 리..
1. GETURI로 식별되는 리소스를 가져올때 사용, 무언가 서버로부터 정보를 취득하고자할때 주로 사용 2. POSTRequest Body에 인자를 담아 전송할때 사용, 서버에 정보를 전달하고자 할때 주로 사용 3. PUTFTP를 이용한 파일업로드 같이 파일을 전송하기 위한 메서드. 일반적인 웹 애플리케이션에서는 거의 사용하지 않지만, REST(Representational State Transfer) URI 설계시 update용으로 사용하기도 함. 4. DELETEPUT이 파일업로드라면 DELETE는 삭제할때 사용. 마찬가지로 일반적 웹 애플리케이션에서는 사용하지 않으나 REST URI설계시 delete용으로 사용. 5. HEADGET과 같은 용도이지만 ResponseBody를 반환하지 않음. URI ..
TCP/IP는 각 역할별로 계층(Layer)를 나누어 4개의 계층이있다. 1. Application Layer유저에게 제공되는 애플리케이션의 통신방식을 결정.ex) FTP, DNS, HTTP 등 2. Transport Layer통신 노드 간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당.ex) TCP, UDP 3. Network Layer네트워크 상에서 패킷의 이동을 다루는 역할. 어떤 경로로 수신자에게 패킷을 보낼지 결정(라우팅). 4. Link LayerLan카드, 케이블 등과 같은 물리적 하드웨어 담당
- Total
- Today
- Yesterday
- frontcode
- http
- MySQL
- EffectiveJava
- backend개발환경
- clean code
- Jackson
- servlet
- OOP
- java8
- JavaScript Core
- TEST
- spring cloud
- javascript
- generics
- 정규표현식
- DesignPattern
- frontend개발환경
- Spring
- Git
- code
- JPA
- programming
- mariadb
- Kotlin
- toby
- Design Pattern
- go-core
- java
- db
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |