HTTP
-
[ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client 오류error handling 2023. 3. 18. 09:29
[ERR_HTTP_HEADERS_SENT] node 로 express를 통해 작업 중 pm2 log 확인 중이었는데 아래와 같은 오류가 발생했습니다. [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client 오류 [ERR_HTTP_HEADERS_SENT]는 서버가 클라이언트에 둘 이상의 응답을 보내려고 할 때 발생하는 오류라는 것을 발견했다. 즉 하나의 응답을 보낸 후, 또 다른 응답을 동시에 보내려고 할 때 생기는 오류 입니다. 예시 router.get("/", verifyToken, (req, res) => { if (req.user) { res.send(`${req.user.username}님 로그인 되었습니다.`);..
-
웹페이지가 사용자에게 보여지는 과정Topic/CS 2022. 3. 28. 13:29
순서 사용자가 브라우저에 url을 입력한다. url에서 도메인 name 부분을 DNS 서버에서 검색한다. DNS 서버에서 해당 도메인 name에 해당하는 ip 주소를 찾아 url 정보와 함께 전달한다. 웹페이지 url 정보와 전달받은 ip 주소는 http를 사용해 http 요청 메시지를 생성한다. 이제 생성된 http 요청 메시지를 TCP를 이용해 인터넷을 거쳐 ip 주소의 컴퓨터로 전송한다. 도착한 http 요청 메시지는 http 프로토콜을 사용해 http 응답을 만든다. 만들어진 http 메시지는 다시 TCP를 이용해 요청한 컴퓨터로 전송한다. 도착한 http 응답 메시지는 http 프로토콜을 사용해 웹 페이지 데이터로 변환한다. 변환된 웹 페이지의 데이터는 웹 브라우저에 의해 출력된다. 요약 URL..
-
네트워크 심화 과정Topic/CS 2022. 2. 15. 13:47
IP & IP Packet 💥 인터넷 내부에서 클라이언트와 서버가 통신하는 법 IP(인터넷 프로토콜) 주소를 컴퓨터에 부여하여 이를 사용 패킷 단위로 전송을 하면 노드들은 목적지 IP에 도달하기 위해 서로 데이터를 전달 IP 지정한 IP 주소(IP Address)에 패킷(Packet)이라는 통신 단위로 데이터 전달 IP Packet pack + bucket의 합성어 패킷! 우체국 송장처럼 전송 데이터를 무사히 전송하기 위해 출발지 IP, 목적지 IP와 같은 정보가 포함되어 있다. IP의 한계점 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송해버린다.. 비신뢰성 중간에 패킷이 사라질 수 있다! 패킷의 순서를 보장할 수 없다. Ex. 전달 데이터의 용량이 큰 경우 패킷 단위로 나눠 전달..
-
Web Server 기초, CORS, Node.js, HTTP 트랜잭션 해부Topic/Node.js | server 2021. 12. 29. 15:36
CORS ✔️ 고도화된 최근의 웹으로 인해 여러 곳의 리소스를 활용할 필요성이 대두되었고, 선배 개발자분들의 노력으로 CORS가 생겨나게 되었다. 예전과 다르게 same origin이 아니라 cross origin 요청을 해야 한다. Cross Origin Resource Sharing: cross origin에서 리소스(서버자원)을 요청하여 사용한다. const defaultCorsHeaders = { 'access-control-allow-origin': '*', 'access-control-allow-methods': 'GET, POST, PUT, DELETE, OPTIONS', 'access-control-allow-headers': 'content-type, accept', 'access-con..
-
HTTP, 브라우저의 작동원리, REST APITopic/Node.js | server 2021. 12. 24. 17:10
HTTP HTTP: HyperText Transfer Protocol HTML과 같은 문서를 전송하기 위한 프로토콜 // 웹 브라우저와 웹 서버의 소통을 위해 디자인되었다. 특징: Stateless(무상태성) HTTP messages 요청(Requests) / 응답(Responses) 요청과 응답의 유사한 구조 start line: start line에는 요청이나 응답의 상태를 나타낸다 // 첫번째 줄 HTTP headers: 요청을 지정하거나, 메시지에 포함된 본문을 설명하는 헤더의 집합이다. empty line: 헤더와 본문은 구분하는 빈 줄 body: 요청과 관련된 데이터나 응답과 관련된 데이터 또는 문서를 포함한다. // 선택적으로 사용한다. 이 중 start line과 HTTP headers를 ..