본문 바로가기

WEB&서버

(18)
[WEB] HTTP Method HTTP Method https://developer.mozilla.org/ko/docs/Web/HTTP/Methods 비교적 자주 사용되는 HTTP 메서드는 다음과 같다. GET: 서버에 특정 리소스를 요청. 정보를 가져올 때 사용 POST: 서버에 데이터를 제출. 데이터를 추가 / 업데이트할 때 사용 PUT: 특정 리소스 전체를 갱신(대체) PATCH: 특정 리소스의 일부를 수정 DELETE: 특정 리소스를 제거 MDN에서는 다음 3가지 특성을 기준으로 HTTP 메서드를 설명한다. 안전함(Safe): 메서드가 서버의 상태를 변경하지 않는다. 안전한 메서드는 멱등성을 가지지만, 역은 성립하지 않는다. ex) PUT은 멱등성을 가지지만, 서버의 상태를 변경한다. GET / HEAD / OPTIONS 캐시..
HTTP HATEOAS 하이퍼미디어는 멀티미디어(텍스트, 이미지, 영상 등)를 하이퍼 링크를 통해 이동할 수 있는 비선형 구조를 의미한다. HATEOAS는 직역하면 "어플리케이션 상태 엔진으로써의 하이퍼미디어"이다. 상태 엔진을 state machine으로 해석하면, 애플리케이션의 상태를 전이(조작)하는데 하이퍼 미디어를 이용한다 정도의 의미가 된다. 구체적으로는 서버가 응답할 때 요청된 자원과 해당 자원과 관련된 링크를 함께 보내는 형식으로 표현된다. { "id": 123, "name": "John Doe", "age": 30, "links": [ { "rel": "self", "href": "https://api.example.com/users/123" }, { "rel": "update", "href": "https://..
[WEB] REST & REST API REST(Representational State Transfer) 논문: https://ics.uci.edu/~fielding/pubs/dissertation/top.htm REST는 네트워크 환경에서 통신을 관리하기 위한 설계 지침을 의미한다. 이때, REST의 모든 제약조건을 지켜야 한다는 의미가 아니라, 지키면 네트워크 통신을 설계하기 유리하다는 측면으로 바라보는 것이 좋다. REST를 만족하는 아키텍처는 다음과 같은 제약조건을 따라야 한다. Client - Server Stateless Cache Uniform Interface Layered System Code On Demand Client - Server 클라이언트와 서버로 분리되어야 하며, 둘은 의존성이 없어야 한다. 관심사 분리를 통해 ..
[HTTP Status] 429 Too Many Requests https://developer.mozilla.org/ko/docs/Web/HTTP/Status/429 429 Too Many Requests - HTTP | MDN HTTP 429 Too Many Requests 응답 상태 코드는 사용자가 주어진 시간 동안 너무 많은 요청을 보냈음을 나타냅니다("속도 제한"). developer.mozilla.org 429 상태 코드는 사용자가 서버에 대해 일정 기간 내에 너무 많은 요청을 보냈음을 의미한다. 특정 웹사이트로부터 데이터를 전부 긁어오는 크롤링 코드처럼 짧은 시간에 많은 요청을 보내면 서버에 높은 부하가 걸린다. 서버는 이 상황에서 429 에러를 반환하여 사용자에게 요청을 적당히 보내라는 의미를 전달할 수 있다. 따라서 429 상태 코드가 반환되었다면, ..
[WEB] XPath로 SVG 요소 식별하기 튜토리얼 출처: https://www.udemy.com/course/xpath-tutorial-from-basic-to-advance-level/ 사용법 요약 -> //*[local-name() = 'svg'] : local-name() 함수로 엘리먼트의 이름을 매칭. XPath를 통해 svg 요소를 찾을 때 //svg 같은 문법을 사용할 수 없다고 하는데, 이는 표준 수준에서 지원하지 않는 기능이라고 한다. 다행히도 XPath에는 요소의 이름을 가져오는 함수가 2개 존재한다. name( [node-set] ): 노드 집합 내 첫 번째 노드의 QName을 반환한다. local-name( [node-set] ): 노드 집합 내 첫 번째 노드의 local name을 반환한다. QName은 Qualified ..
[WEB] XPath axes DOM 상에서 엘리먼트를 찾을 때 단순히 해당 엘리먼트가 가진 속성이나 텍스트 값을 매칭시켜서 찾을 수도 있지만, parent~ / child~ 이름을 가지는 함수를 사용하여 DOM 트리 상의 관계를 기반으로 엘리먼트를 찾는 방법도 있다. XPath axes는 위 언급한 방식에 대응되는 기능이다. XPath가 현재 가리키고 있는 컨텍스트 노드에 대한 상대적인 노드를 찾는 데 사용하는 방식으로, 특정 노드의 부모 - 자식 관계를 기반으로 노드를 식별할 수 있다. https://developer.mozilla.org/en-US/docs/Web/XPath/Axes https://www.softwaretestinghelp.com/xpath-axes-tutorial/ XPath specification 상에는 총..
[WEB] XPath https://ko.wikipedia.org/wiki/XPath 설명 W3C 표준으로, XML 문서의 구조를 통해 경로 위에 위치한 구문을 사용하여 항목을 배치하고 처리하는 방법을 기술하는 언어로, XML 문서의 노드를 정의하기 위해 경로식을 사용하고, 수학 함수 및 기타 확장 가능한 표현들이 있다. 웹 DOM 상에 존재하는 엘리먼트들의 주소를 나타내는 기술. 관련 기술 XSLT: XML 문서를 다른 XML 문서로 변환하는 (Extensible Stylesheet Language Transformations) XPointer: 웹 상에 존재하는 XML 문서의 일부분에 주소를 부여할 수 있는 방법을 제공 종류 Absolute XPath: 절대 경로 형식으로 표현 ( /html/body/div ... ). ..
[부가정보] https 로컬에서 사용하기 웹 브라우저에서 지원하는 일부 기능은 HTTPS 프로토콜을 요구한다. 대표적인 예가 WebRTC. 로컬에서 https를 동작하는데에 대한 구글의 가이드가 있다. 예전에 클론 코딩할 때 사용해봤는데, 잊어버려서 기록해둔다. https://web.dev/how-to-use-local-https/ 로컬 개발에 HTTPS를 사용하는 방법 web.dev