首页 > 其他分享 >解析url

解析url

时间:2023-06-09 16:32:36浏览次数:46  
标签:serverlen url char int pathstrp serverstrp 解析

// parse url 解析 url c c++ 代码 rfc 2068
 
#include <stdio.h>
 #include <string.h>
 #include <stdlib.h>

 // 解析url,作为示例,很多情况没考虑,比如说user,pass之类的
 int parse_url(char *url, char **serverstrp, int *portp, char **pathstrp)
 {
     char buf[256];
     int serverlen, numread=0;

     // 跳过"http://" ,例"http://www.a.cn"->"www.a.cn"
     url = url+7;

     // 输入url直到遇到'/'和':'符号
     sscanf(url, "%255[^/:]", buf);
     serverlen = strlen(buf);
     *serverstrp = (char *)malloc(serverlen+1);
     strcpy(*serverstrp, buf);
     if(url[serverlen]==':')
     {
         // 获取port
         sscanf(&url[serverlen+1], "%d%n", portp, &numread);
         /* add one to go PAST it */
         
         numread++;
     }
     else
     {
         *portp = 80;
     }
     /* the path is a pointer into the rest of url */
     
     *pathstrp = &url[serverlen+numread];
     return 0;
 }

 int main()
 {
     char url[256] = "http://www.a.cn:80//index.html";
     char pathstr[256] = {'/0'};
     char szserverstrp[256] = {'/0'};
     char* serverstrp = szserverstrp;
     char* pathstrp = &pathstr[0];
     int port;

     parse_url(url,&serverstrp,&port,&pathstrp);
     printf("%s/n%s/n%d/n%s/n",url,serverstrp,port,pathstrp);

     return 0;
 }

标签:serverlen,url,char,int,pathstrp,serverstrp,解析
From: https://blog.51cto.com/u_16156420/6449081

相关文章

  • k8s 证书全解析
    #01-创建证书和环境准备本步骤主要完成:-(optional)role:os-harden,可选系统加固,符合linux安全基线,详见[upstream](https://github.com/dev-sec/ansible-collection-hardening/tree/master/roles/os_hardening)-(optional)role:chrony,[可选集群节点时间同步](../guide/chrony......
  • Kubernetes添加解析操作文档
    ​Kubernetes添加解析操作文档​1.首先在kube-system命名空间创建configmap,添加自定义host解析kubectlcreateconfigmap-nkube-systemkubedns-host##createconfigmap指明创建的类型#-n指定命名空间#kubedns-host自定义的configmap命名。(建议统一使用kubedns-hos......
  • 深入解析React DnD拖拽原理,轻松掌握拖放技巧!
    我们是袋鼠云数栈UED团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。。本文作者:霁明一、背景1、业务背景业务中会有一些需要实现拖拽的场景,尤其是偏视觉方向以及移动端较多。拖拽在一定程度上能让交互更加便捷,能......
  • url中的jsessionid解释
    url中的jsessionid解释(1)这是一个保险措施因为Session默认是需要Cookie支持的但有些客户浏览器是关闭Cookie的这个时候就需要在URL中指定服务器上的session标识,也就是5F4771183629C9834F8382E23BE13C4C用一个方法(忘了方法的名字)处理URL串就可以得到这个东西这个方法......
  • Windows证书管理器 && SSL certification && WSL-Docker: curl: (60) SSL certificat
    深入浅出certmgr——Windows证书管理器https://www.fke6.com/html/91605.html计算机安全是当前社会的一个重要议题,证书是一种重要的安全机制,负责证明数据、软件或者人的身份和信誉。certmgr(即“证书管理器”)是Windows中专门用于证书管理的工具。本文将从多个方面对certmgr进行深......
  • MATLAB匿名函数解析
    在MATLAB中,匿名函数也被称为内联函数。它是一种无需用户定义的短小的函数表达式,通常用于一次性的简单计算。创建一个匿名函数可以使用以下语法:function_handle=@(input_arguments)expression这里的function_handle是一个指向函数的句柄,input_arguments是一个输入参数列表,而......
  • 解析apache的httpd.conf配置内容
    ServerRoot“/usr/local“ServerRoot用于指定守护进程httpd的运行目录,httpd在启动之后将自动将进程的当前目录改变为这个目录,因此如果设置文件中指定的文件或目录是相对路径,那么真实路径就位于这个ServerRoot定义的路径之下。ScoreBoardFile/var/run/......
  • 使用axios的post方法传输对象数据和后台数据进行解析判断
    使用vue的v-model绑定生成对象数据的通过axios传输数据操作的时候,对象中属性的命名必须和实体中的一致。实体:privateIntegerid;privateStringname;privateStringnickname;privateStringpassword;privateIntegerage;privateStringgend......
  • RK3588-Camera:MIPI-CSI调试之通路解析
    一、简介本文介绍RK3588平台的Camera:MIPI-CSI调试之通路解析MIPI联盟,即移动产业处理器接口(MobileIndustryProcessorInterface简称MIPI)联盟。MIPI(移动产业处理器接口)是 MIPI联盟发起的为移动应用处理器制定的开放标准和一个规范。目的是把手机内部的接口如摄像头、显示屏接口......
  • ChatGPT提示大解析:如何有效定制Prompt并用插件管理
    有时候,你可能在编程时遇到难题,需要解决方法。有时候,你在学习新的语言时,想要找到一位悉心的教师。又或者,你可能只是需要一些新的灵感,来润色你的文章。在所有这些情况下,ChatGPT都可以发挥巨大的作用。这款由OpenAI开发的人工智能语言模型,就如同我们的私人助手,能提供诸如翻译、编程......