URL解析

统一资源定位符(URL):
负责标识万维网上的各种文档,使每一文档在整个万维网的范围内有唯一的标识符URL。

URL的一般形式:<协议>://<主机>:<端口>/<路径>?<参数>

  • 常见的<协议>有http、https、ftp等
  • <主机>可以是主机域名或IP地址。(域名可通过域名解析得到主机IP)
  • <端口>用于标识主机的应用进程
  • <路径>应用进程通过<路径>找到需要访问的资源位置
  • <参数>给该进程传递参数对资源进行相应的处理

域名解析:主机将所有请求的域名发送给本地域名服务器,由其解析出相应的IP返回给主机。由此主机可通过该IP将信息发送到网络上。

端口:端口号只具有本地意义,标志本计算机应用层中的各进程。

  • 服务器端使用的端口号分为:熟知端口号(0~1023)和登记端口号(1024~49151)
    熟知端口号:
应用程序FTPTELNETSMTPDNSHTTPSNMP
熟知端口号2123255380161
  • 客户端使用的端口号(临时端口号49152~65535):这类端口号仅在客户进程运行时系统自动分配,等通信结束则回收该端口号,可供其它客户进程使用。

套接字: IP地址+端口号,唯一的标识网络中一个主机和其上的一个进程

下面以京东的一个URL为例,解析<路径>和<参数>

如连接:https://search.jd.com/Search?keyword=%E7%AC%94&enc=utf-8&psort=3&page=3
这里我截取了部分参数。
这个链接用到的是https协议,域名为search.jd.com,端口默认为80端口号,定位到服务器的进程后,该进程找到Search文档,并对相应的参数做处理返回最终的页面。其中

  • Keyword:表示搜索的关键字,这里的值是“笔”的转码。
  • enc:表示编码格式
  • psort:确定以综合、销量、价格…中的一种排列展示
  • page:确定返回的页码。
    读者可以试着修改相关参数的值看看效果

当然有些网站可以通过
<协议>://<域名>:<端口号>/<路径>/<参数值>/<参数值>/…/<参数值>/
这样的形式获得一些参数。
实现逻辑是,通过URL,服务器进程将能拿到端口号之后的内容构成一个字符串,然后对该字符串进行正则表达式的匹配。相关内容可以了解正则表达式的规则。
这里举个例子:
假设URL为:http://127.0.0.1:8000/article/2017/03/25/
那么服务器进程将可通过r’^articles/(?< year>[0-9]{4})/(?< month>[0-9]{2})/(?< day>[0-9]{2})/$’这样的正则表达式捕获年月日。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值