본문 바로가기

[IT/Programming]/HTML related

Referer 알아내기 in Server (Vert.x) and Client (HTML/javascript)

반응형
m.logPrint() is working!

<eq> and <eqq> tags are rendered to MathJax format, being enclosed by \ ( \ ) and \ [ \ ].

docuK-1 scripts started!
If this log is not closed automatically, there must be an error somewhere in your document or scripts.

Table of Contents is filled out.

Auto numberings of sections (div.sec>h2, div.subsec>h3, div.subsubsec>h4), <eqq> tags, and <figure> tags are done.

<cite> and <refer> tags are rendered to show bubble reference.

<codeprint> tags are printed to corresponding <pre> tags, only when the tags exist in the document.


Current styles (dark/bright mode, font-family, font-size, line-height) are shown.

disqus.js with id="disqus-js" is loaded.

kakao.js with id="kakao-jssdk" is loaded.

New ShortKeys (T: Table of Contents, F: Forward Section, D: Previous Section, L: To 전체목록/[Lists]) are set.

m.delayPad=512;
m.wait=1024;
wait 999ms.
▼ Hide
Toggle a mess
Go (FS)
TofC
DocuK Log
Backward
Forward
RRA
Lists
CmtZ
CmtX
Handle CmtZ
Log in
out focus
Mode: Bright; Font: Noto Sans KR; font-size: 18.0px (10.0); line-height: 1.6;
width: 1280, height: 720, version: 2.12.18
Canonical URI: https://kipid.tistory.com/entry/Referrer-in-Server-Vert-x-and-Client-javascript
dg:plink (Document Global Permanent Link): https://kipid.tistory.com/254
document.referrer: Empty
This document is rendered by docuK (See also SEE (Super Easy Edit) of docuK and pure SEE).

Referer 알아내기 in Server (Vert.x) and Client (HTML/javascript)

Client (방문객) 이 어느 경로를 통해 들어왔는지, 어느 검색어를 통해 어느 검색엔진을 통해 들어왔는지 등을 알아내려면 어떻게 해야할까?
Vert.x 랑 javascript 에서 쓰이는 referer/referrer 철자 (spelling) 가 다르네? ㅡㅂㅡ;;;

TPH.Posting History

▼ Show/Hide

T1.Referer in Vert.x server

▼ Show/Hide
참고
[01]
Ref. [01] https://vertx.io/
.
import io.vertx.core.AbstractVerticle;
import io.vertx.core.http.HttpServerRequest;

import io.vertx.ext.web.Router;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;



public class Recoeve extends AbstractVerticle {
	public static final String host="recoeve.net";
	public static final String ENCODING="UTF-8";
	public static final String INVALID_ACCESS="INVALID ACCESS";
	private static long numberOfClients;
	static {
		numberOfClients=0;
	}

	@Override
public void start() {
	Router router=Router.router(vertx);

	router.route().handler(ctx -> {
		HttpServerRequest req=ctx.request();
		System.out.println("\n\nA client has connected!: "+(++numberOfClients));
		final String referer=req.headers().get("Referer");
		if (referer!=null) {
			try {
				System.out.println("Referer: "+URLDecoder.decode(referer, "UTF-8"));
			} catch (UnsupportedEncodingException e) {
				System.out.println(e);
			}
		}
		else {
			System.out.println("Referer: null");
		}

		if (referer.substring(0,4).toLowerCase().equals("http")) {
			int k=4;
			if (referer.charAt(k)=='s'||referer.charAt(k)=='S') {
				k++;
			}
			if (referer.startsWith("://",k)) {
				k+=3;
				int l=referer.indexOf('/',k);
				String refererHost=null;
				if (l==-1) {
					refererHost=referer.substring(k);
				}
				else {
					refererHost=referer.substring(k,l);
				}
				System.out.println("Referer Host: "+refererHost);
			}
		}

		try {
			System.out.println("Absolute URI: "+URLDecoder.decode(req.absoluteURI(), "UTF-8"));
		} catch (UnsupportedEncodingException e) {
			System.out.println(e);
		}

		req.response().putHeader("Content-Type","text/plain; charset=utf-8");
		req.response().end(INVALID_ACCESS, ENCODING);
		System.out.println(INVALID_ACCESS);
	});

	vertx.createHttpServer()
		.requestHandler(router).listen(80);
} // public void start()
} // public class Recoeve extends AbstractVerticle
// Log Example
A client has connected!: 208
Referer: https://recoeve.net/CDN/docuK-2.3.css
Referer Host: recoeve.net
Absolute URI: https://recoeve.net/CDN/cc.png
▲ Hide

T2.Document.referrer in HTML/Javascript

▼ Show/Hide
참고 .
document.referrer: Empty
<script>
let referrer=document.referrer;
let referrerHTML=(referrer?`<a target="_blank" href="${referrer}">${m.escapeHTML(decodeURIComponent(referrer))}</a>`:`Empty`);
$("#pre-result").html(`document.referrer: ${referrerHTML}`);
</script>
▲ Hide
반응형
Get page views