squid的处理request和reply的流程
request处理:
Breakpoint , SQUID_MD5Final (
digest=0x764d00 "\021dZcaFe\270\273a\020,\304j\222\347\227\372\364\206%B\245#\203\352\275It\357\266\343\003I\322`\225\250\370\204<k?I\275\353O9", ctx=0x7fff24ec0e80) at md5.c:
{
(gdb) bt
# SQUID_MD5Final (
digest=0x764d00 "\021dZcaFe\270\273a\020,\304j\222\347\227\372\364\206%B\245#\203\352\275It\357\266\343\003I\322`\225\250\370\204<k?I\275\353O9", ctx=0x7fff24ec0e80) at md5.c:
# 0x0000000000489e35 in storeKeyPublicByRequestMethod (request=0x1d544a0, method=) at store_key_md5.c:
# 0x00000000004809c7 in storeGetPublicByRequestMethod (req=0x1d544a0, method=) at store.c:
# 0x00000000004809f1 in storeGetPublicByRequest (req=0x1d544a0) at store.c:
# 0x0000000000428c1b in clientProcessRequest2 (http=0x1d54058) at client_side.c:
# 0x00000000004293aa in clientProcessRequest (http=0x1d54058) at client_side.c:
# 0x000000000042026b in clientCheckNoCacheDone (answer=, data=0x1d54058) at client_side.c:
# 0x000000000040af87 in aclCheckCallback (checklist=0x1d66718, answer=ACCESS_ALLOWED) at acl.c:
# 0x000000000040ad7e in aclCheck (checklist=0x1d66718) at acl.c:
# 0x000000000040b3db in aclNBCheck (checklist=0x1d66718, callback=0x420211 <clientCheckNoCacheDone>,
callback_data=0x1d54058) at acl.c:
# 0x00000000004201e7 in clientCheckNoCache (http=0x1d54058) at client_side.c:
# 0x000000000041f8dd in clientAccessCheck2 (data=0x1d54058) at client_side.c:
# 0x000000000041fa65 in clientFinishRewriteStuff (http=0x1d54058) at client_side.c:
# 0x000000000042f2ac in clientStoreURLRewriteDone (data=0x1d54058, result=0x0) at client_side_storeurl_rewrite.c:
# 0x000000000042f0ef in clientStoreURLRewriteStart (http=0x1d54058) at client_side_storeurl_rewrite.c:
# 0x000000000042ec44 in clientRedirectDone (data=0x1d54058, result=0x0) at client_side_rewrite.c:
# 0x000000000042e45a in clientRedirectAccessCheckDone (answer=, data=0x1d54058) at client_side_rewrite.c:
# 0x000000000040af87 in aclCheckCallback (checklist=0x1d54b98, answer=ACCESS_DENIED) at acl.c:
# 0x000000000040ae1e in aclCheck (checklist=0x1d54b98) at acl.c:
# 0x000000000040b3db in aclNBCheck (checklist=0x1d54b98, callback=0x42e246 <clientRedirectAccessCheckDone>,
---Type <return> to continue, or q <return> to quit---
callback_data=0x1d54058) at acl.c:
# 0x000000000042e51f in clientRedirectStart (http=0x1d54058) at client_side_rewrite.c:
# 0x000000000041fbe5 in clientAccessCheckDone (answer=, data=0x1d54058) at client_side.c:
# 0x000000000040af87 in aclCheckCallback (checklist=0x1d54a18, answer=ACCESS_ALLOWED) at acl.c:
# 0x000000000040ad7e in aclCheck (checklist=0x1d54a18) at acl.c:
# 0x000000000040b3db in aclNBCheck (checklist=0x1d54a18, callback=0x41fa67 <clientAccessCheckDone>,
callback_data=0x1d54058) at acl.c:
# 0x000000000041f862 in clientAccessCheck (data=0x1d54058) at client_side.c:
# 0x000000000041f80f in clientCheckFollowXForwardedFor (data=0x1d54058) at client_side.c:
# 0x000000000042b7aa in clientTryParseRequest (conn=0x1d52d98) at client_side.c:
# 0x000000000042bd75 in clientReadRequest (fd=, data=0x1d52d98) at client_side.c:
# 0x0000000000432bd9 in comm_call_handlers (fd=, read_event=, write_event=) at comm_generic.c:
# 0x00000000004334de in do_comm_select (msec=) at comm_epoll.c:
# 0x0000000000432fc3 in comm_select (msec=) at comm_generic.c:
# 0x0000000000466c9a in main (argc=, argv=0x7fff24ec1fd8) at main.c:
(gdb) bt
# SQUID_MD5Final (digest=0x764d20 "", ctx=0x7fff811cd960) at md5.c:
# 0x0000000000489c02 in storeKeyPrivate (url=0x1cad320 "http://127.0.0.1:70/hello", method=, id=)
at store_key_md5.c:
# 0x0000000000480b00 in storeSetPrivateKey (e=0x1cad3e0) at store.c:
# 0x000000000048340c in storeCreateEntry (url=0x1cad290 "http://127.0.0.1:70/hello", flags=..., method=)
at store.c:
# 0x0000000000420b06 in clientProcessExpired (http=0x1c830f8) at client_side.c:
# 0x000000000042085b in clientRefreshCheckDone (data=0x1c830f8, fresh=, log=0x0) at client_side.c:
# 0x00000000004765e7 in refreshCheckSubmit (entry=0x1c81d80, callback=0x4207d0 <clientRefreshCheckDone>,
callback_data=0x1c830f8) at refresh_check.c:
# 0x00000000004207ce in clientRefreshCheck (http=0x1c830f8) at client_side.c:
# 0x00000000004262a9 in clientCacheHit (data=0x1c830f8, rep=0x1cabb10) at client_side.c:
# 0x000000000041f6b0 in storeClientCopyHeadersCB (data=0x1c830f8, buf=0x1c9e1b0 "", size=) at client_side.c:
# 0x0000000000486af5 in storeClientCallback (sc=0x1c9e138, sz=) at store_client.c:
# 0x0000000000487bd2 in storeClientReadHeader (data=0x1c9e138, buf=0x1c9e1b0 "", len=) at store_client.c:
# 0x000000000049c10c in storeUfsReadDone (fd=<value optimized out>, buf=0x1c9e1b0 "", len=<value optimized out>,
errflag=, my_data=0x1c81308) at ufs/store_io_ufs.c:
# 0x0000000000434dec in diskHandleRead (fd=, data=0x1c81380) at disk.c:
# 0x0000000000434ec8 in file_read (fd=, buf=0x1c9e1b0 "", req_len=, file_offset=,
handler=0x49c050 <storeUfsReadDone>, client_data=0x1c81308) at disk.c:
# 0x00000000004865c4 in storeRead (sio=0x1c81308, buf=0x1c9e1b0 "", size=, offset=,
callback=0x48747a <storeClientReadHeader>, callback_data=0x1c9e138) at store_io.c:
# 0x00000000004872c6 in storeClientFileRead (sc=0x1c9e138) at store_client.c:
---Type <return> to continue, or q <return> to quit---
# 0x0000000000487202 in storeClientCopy3 (e=0x1c81d80, sc=0x1c9e138) at store_client.c:
# 0x0000000000486eab in storeClientCopy2 (e=0x1c81d80, sc=0x1c9e138) at store_client.c:
# 0x0000000000486ce2 in storeClientCopy (sc=0x1c9e138, e=0x1c81d80, seen_offset=, copy_offset=, size=,
buf=0x1c9e1b0 "", callback=0x41f5c4 <storeClientCopyHeadersCB>, data=0x1c830f8) at store_client.c:
# 0x000000000041f73c in storeClientCopyHeaders (sc=0x1c9e138, e=0x1c81d80, callback=0x425520 <clientCacheHit>,
callback_data=0x1c830f8) at client_side.c:
# 0x000000000042953b in clientProcessRequest (http=0x1c830f8) at client_side.c:
# 0x000000000042026b in clientCheckNoCacheDone (answer=, data=0x1c830f8) at client_side.c:
# 0x000000000040af87 in aclCheckCallback (checklist=0x1c95998, answer=ACCESS_ALLOWED) at acl.c:
# 0x000000000040ad7e in aclCheck (checklist=0x1c95998) at acl.c:
# 0x000000000040b3db in aclNBCheck (checklist=0x1c95998, callback=0x420211 <clientCheckNoCacheDone>,
callback_data=0x1c830f8) at acl.c:
# 0x00000000004201e7 in clientCheckNoCache (http=0x1c830f8) at client_side.c:
# 0x000000000041f8dd in clientAccessCheck2 (data=0x1c830f8) at client_side.c:
# 0x000000000041fa65 in clientFinishRewriteStuff (http=0x1c830f8) at client_side.c:
# 0x000000000042f2ac in clientStoreURLRewriteDone (data=0x1c830f8, result=0x0) at client_side_storeurl_rewrite.c:
# 0x000000000042f0ef in clientStoreURLRewriteStart (http=0x1c830f8) at client_side_storeurl_rewrite.c:
# 0x000000000042ec44 in clientRedirectDone (data=0x1c830f8, result=0x0) at client_side_rewrite.c:
# 0x000000000042e45a in clientRedirectAccessCheckDone (answer=, data=0x1c830f8) at client_side_rewrite.c:
# 0x000000000040af87 in aclCheckCallback (checklist=0x1c83d58, answer=ACCESS_DENIED) at acl.c:
# 0x000000000040ae1e in aclCheck (checklist=0x1c83d58) at acl.c:
# 0x000000000040b3db in aclNBCheck (checklist=0x1c83d58, callback=0x42e246 <clientRedirectAccessCheckDone>,
callback_data=0x1c830f8) at acl.c:
---Type <return> to continue, or q <return> to quit---
# 0x000000000042e51f in clientRedirectStart (http=0x1c830f8) at client_side_rewrite.c:
# 0x000000000041fbe5 in clientAccessCheckDone (answer=, data=0x1c830f8) at client_side.c:
# 0x000000000040af87 in aclCheckCallback (checklist=0x1c83ba8, answer=ACCESS_ALLOWED) at acl.c:
# 0x000000000040ad7e in aclCheck (checklist=0x1c83ba8) at acl.c:
# 0x000000000040b3db in aclNBCheck (checklist=0x1c83ba8, callback=0x41fa67 <clientAccessCheckDone>,
callback_data=0x1c830f8) at acl.c:
# 0x000000000041f862 in clientAccessCheck (data=0x1c830f8) at client_side.c:
# 0x000000000041f80f in clientCheckFollowXForwardedFor (data=0x1c830f8) at client_side.c:
# 0x000000000042b7aa in clientTryParseRequest (conn=0x1c81e38) at client_side.c:
# 0x000000000042bd75 in clientReadRequest (fd=, data=0x1c81e38) at client_side.c:
# 0x0000000000432bd9 in comm_call_handlers (fd=, read_event=, write_event=) at comm_generic.c:
# 0x00000000004334de in do_comm_select (msec=) at comm_epoll.c:
# 0x0000000000432fc3 in comm_select (msec=) at comm_generic.c:
# 0x0000000000466c9a in main (argc=, argv=0x7fff811cf088) at main.c:
(gdb)
reply报文的处理过程:
(gdb)
# SQUID_MD5Final (digest=0x764d20 "\237:\027", ctx=0x7fff811ceb70) at md5.c:
# 0x0000000000489c02 in storeKeyPrivate (url=0x1cad2c0 "http://127.0.0.1:70/hello", method=, id=)
at store_key_md5.c:
# 0x0000000000480b00 in storeSetPrivateKey (e=0x1c81d80) at store.c:
# 0x000000000048329e in storeSetPublicKey (e=0x1cad3e0) at store.c:
# 0x000000000044ef4e in httpMakePublic (entry=0x1cad3e0) at http.c:
# 0x00000000004500cd in httpProcessReplyHeader (httpState=0x1cada28,
buf=0x70cee0 "HTTP/1.0 200 OK\r\nAge: 3000\r\nCache-control: public,max-age=6000\r\nLast-modified: Mon,09 Jun 2014 06:20:32 GMT\r\nExpire: Mon,16 Jun 2014 06:20:32 GMT\r\nEtag: ", 'x' <repeats times>, "\r\nContent-Type: text; charset=I"..., size=) at http.c:
# 0x00000000004515b6 in httpReadReply (fd=, data=0x1cada28) at http.c:
# 0x0000000000432bd9 in comm_call_handlers (fd=, read_event=, write_event=) at comm_generic.c:
# 0x00000000004334de in do_comm_select (msec=) at comm_epoll.c:
# 0x0000000000432fc3 in comm_select (msec=) at comm_generic.c:
# 0x0000000000466c9a in main (argc=, argv=0x7fff811cf088) at main.c:
squid的处理request和reply的流程的更多相关文章
- Salesforce Integration 概览(二) Remote Process Invocation—Request and Reply(远程进程调用--请求和响应)
本篇参考:https://resources.docs.salesforce.com/sfdc/pdf/integration_patterns_and_practices.pdf 我们在项目中,经常 ...
- [WCF]设置拦截器捕捉到request和reply消息
WCF进阶学习ing... 在熟练掌握了ABC的使用以后,就开始想着去了解WCF是怎么通信的了.首先是服务描述语言wsdl,它定义了服务的描述等等,用于让外界知道这个服务的ABC是什么.另外一个比较重 ...
- 【转】WCF设置拦截器捕捉到request和reply消息
原文:https://www.cnblogs.com/yanglang/p/7063743.html 我们需要拦截消息,并把消息打印出来,那么我们就需要一个拦截器,叫做MessageInspector ...
- github Pull Request合入全流程介绍
图解全流程 详细步骤 1. fork仓库 2. clone fork仓库到本地 3. 关联upstream原仓库 在fork本地仓库输入下面命令进行关联: git remote add upstrea ...
- django的request介绍和APIView流程分析和CBV的流程分析
首先get请求的数据都在request.GET中,request.body中没有,因为只有post请求有请求体,request.body中的数据是请求体的数据 首先,我们还是用cbv的方式来讲解 我们 ...
- squid源码安装下的conf文件默认值和提示
# WELCOME TO SQUID 3.0.STABLE26# ----------------------------## This is the default Squid c ...
- squid ACL 大全
Access Controls in Squid Contents Access Controls in Squid The Basics: How the parts fit together AC ...
- zookeeper原理解析-服务器端处理流程
1)处理器链 这部分内容我们主要讲解zookeeper请求在zookeeper server端的处理流程,对于不同角色的zookeeper具有不同的处理流程, ZookeepeerServer的sta ...
- github的pull request是指什么意思?有什么用处
github的pull request是指什么意思? 来看看某乎某位阿牛的理解,多么的简单粗暴! 我尝试用类比的方法来解释一下 pull reqeust.想想我们中学考试,老师改卷的场景吧.你做的试卷 ...
随机推荐
- 如何利用`keep-alive`按需缓存页面数据
随着项目不断变大,页面变多,搜索条件也随之也越来越多,而每次跳转页面再返回时,之前的筛选的条件都会别清空.之前在elment-ui table组件 -- 远程筛选排序提到过缓存,但是有所取巧,这次重新 ...
- ExpressionTree学习笔记
概述: 这段时间需要制定自定义查询条件,感觉有必要学习ExpressionTree. 学习参考资料:https://msdn.microsoft.com/en-us/library/mt654263. ...
- 【maven】IDEA:存在jar包,pom.xml文件没报错,但是Maven-Project-Dependencies有红线报错
1.这个问题很简单 把pom.xml里这些出错的jar包的引用先删除,再刷新一次,再添上,就行了 2.大概是idea有点反应迟钝
- 微软宣布全新命令行+脚本工具:PowerShell 7
DOS 逐渐退出历史舞台后,Windows 一直内置着 CMD 命令行工具,并在 Windows 7 时代升级为更强悍的 PowerShell,不仅可以执行命令行,更可以执行各种高级脚本,还能跨平台. ...
- AIX中的服务管理
1.SRC AIX系统使用资源控制器(SRC,system resource controller),控制各种服务子系统,包括启动,停止进程,搜集进程状态信息等. AIX系统中服务有子系统组 ...
- (转) linux实现ssh免密码登录的正确方法
方法/步骤 验证ssh远程登录,未作免密处理的两台机器,登录时,是需要输入密码的 本地系统执行 ssh-keygen -t rsa 命令,生成密钥文件 在相应的目录下查看生成的密钥文件,其中:id_r ...
- zabbix的简单操作(查看监控,自定义监控和钉钉监控报警)
zabbix是一种监控软件,我用的是centos7.5版本 一:我已经添加好主机了,接下来就是看看怎么查看监控内容的 1.打开zabbix服务的web网页 2.检测最新数据,要在最新数据中筛选 3.查 ...
- java课堂作业3 动手动脑
第一题 测试一下代码查看输出结果 public class InitializeBlockDemo { /** * @param args */ public static void main(Str ...
- 用css编写三角和半圆形状样式
1.三角样式 htriangle-down { height:; border-left:11rpx solid transparent; border-right:11rpx solid trans ...
- Python服务器开发三:Socket
Python服务器开发三:Socket socket是操作系统中I/O的延续,它可以使进程和机器之间的通信成为可能.socket可以看成一个标准的文件描述符.不同的是文件需要用open()函数打开 ...