2020-09-17 gateway业务流程 两个任务:referer认证和非商品模板化

gateway主要功能:
外部请求->1.gw解析请求->2.向ad-server发送请求->3.解析ad-server发来的应答->4.向外部发应答
在外部看,就是给gateway发送request,然后gateway返回一个response。

//外部给gateway发送request,然后gateway返回一个response。
bool BidRequestHandler::ProcessBidRequest(const shared_ptr<HttpRequest> request, shared_ptr<HttpResponse> response) {
//这四个步骤在代码中的位置
// 1.
shared_ptr<BidRequest> bid_request = handler->ParseBidRequest();
// 2.3.
bool ret = handler->CallServices(request, bid_request, ads_req, ads_resp, fill_data_arr, err_msg);
	// 2.
	err_msg = PrepareCallAds(request, bid_request, ads_req);
	// 3.
	ads_resp = GetAdsResponse(ads_req);
// 4.
if (handler->WriteBidResponse(fill_data_arr, response)) 

实现两个小功能:
1.非商品(比如店铺之类的)模板化。设置一些统一的模板来给前端用,替代以前每次前端定义一个样式,后端就跟着判断后再处理。
实现方法:设置几种模板,提供给前端选择。
2.添加referer认证并落日志。
目的:控制一些网页,让这些网页不要出广告。
实现方法:从HTTP的Headers中取出 Reference(记录了父页面的url),在黑名单词表中有就给干掉直接返回,不显示广告。把referer落日志->思南(代码中原来叫指南针)

http的request请求的header中,referer记录了发起请求的页面(就是这个请求来自哪里)。
一个例子:从百度的主页搜索一个内容的request头:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Connection: keep-alive
Cookie: ……
Host: www.baidu.com
Referer: https://www.baidu.com/
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
User-Agent: ……

可以看到referer是百度主页,说明这个请求是百度从百度主页来的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值