首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

一种精确从文本中提取URL的思路及实现

在今年三四月份,我接受了一个需求:从文本中提取URL。这样的需求,可能算是非常小众的需求了。大概只有QQ、飞信、阿里旺旺等之类的即时通讯软件存在这样的需求。在研究这个之前,我测试了这些软件这块功能,发现它们这块的功能还是非常弱的。这类软件往往也是恶意URL传播的媒介,如果不能准确识别出URL,相应的URL安全检测也无从谈起。而且网上也有很多使用正则表达式的方法,可是我看了下,方法简单但是不够精确,对于要求不高的情况可以胜任,但是如果“坏人”想绕过这种提取也是很方便的。(转载请指明出处)下面也是我在公司内部做的一次分享的内容:

02

注册域名时选取域名的十技巧

域名是联接企业和互联网网址的纽带,它像品牌、商标一样具有重要的识别作用,是访问者通达企业网站的“钥匙”,是企业在网络上存在的标志,担负着标示站点和导向企业站点的双重作用。 域名对于企业开展电子商务具有重要的作用,它被誉为网络时代的“环球商标”,一个好的域名会大大增加企业在互联网上的知名度。因此,企业如何选取好的域名就显得十分重要。 域名选取的原则 在选取域名的时候,首先要遵循两个基本原则。 1.域名应该简明易记,便于输入 这是判断域名好坏最重要的因素。一个好的域名应该短而顺口,便于记忆,最好让人看一眼就能记住,而且读起来发音清晰,不会导致拼写错误。此外,域名选取还要避免同音异义词。 2.域名要有一定的内涵和意义 用有一定意义和内涵的词或词组作域名,不但可记忆性好,而且有助于实现企业的营销目标。例如企业的名称、产品名称、商标名、品牌名等都是不错的选择,这样能够使企业的网络营销目标和非网络营销目标达成一致。 域名选取的技巧 1.用企业名称的汉语拼音作为域名 这是为企业选取域名的一种较好方式,实际上大部分国内企业都是这样选取域名。例如,红塔集团的域名为hongta.com,新飞电器的域名为xinfei.com,海尔集团的域名为haier.com,四川长虹集团的域名为changhong.com,华为技术有限公司的域名为huawei.com。这样的域名有助于提高企业在线品牌的知名度,即使企业不作任何宣传,其在线站点的域名也很容易被人想到。

05

手把手教你搭建谷歌Gemini

谷歌上周推出了一款名为 Gemini 的多模态大模型,并且现在发布了免费开放的 Gemini API 供开发者使用。根据谷歌提供的定价信息,Gemini 有两种收费方式。免费版本每分钟可以进行 60 次请求,足够满足个人用户的需求。收费版本目前暂不可用,但定价已经公布。Gemini Pro 付费版的定价为每千个字符 0.00025 美元,每张图片 0.0025 美元,输出每千个字符 0.0005 美元。此外,谷歌将使用免费版的输入和输出来提高模型的能力,但承诺付费版不会用于训练和改进产品,以保护用户的隐私。卷吧卷吧,反正白嫖你没商量,我们可以基于开源的项目(GeminiProChat)以及 Gemini 开放的免费 API 进行搭建一个对话的网站。

01

利用iframe和location.hash实现跨域

大家好,又见面了,我是你们的朋友全栈君。 原理是利用location.hash来进行传值。在url: http://a.com#helloword中的‘#helloworld’就是location.hash,改变hash并不会导致页面刷新,所以可以利用hash值来进行数据传递,当然数据容量是有限的。假设域名a.com下的文件cs1.html要和cnblogs.com域名下的cs2.html传递信息,cs1.html首先创建自动创建一个隐藏的iframe,iframe的src指向cnblogs.com域名下的cs2.html页面,这时的hash值可以做参数传递用。cs2.html响应请求后再将通过修改cs1.html的hash值来传递数据(由于两个页面不在同一个域下IE、Chrome不允许修改parent.location.hash的值,所以要借助于a.com域名下的一个代理iframe;Firefox可以修改)。同时在cs1.html上加一个定时器,隔一段时间来判断location.hash的值有没有变化,一点有变化则获取获取hash值。代码如下:

02

session原理及实现共享

http协议是无状态的,即你连续访问某个网页100次和访问1次对服务器来说是没有区别对待的,因为它记不住你。 那么,在一些场合,确实需要服务器记住当前用户怎么办?比如用户登录邮箱后,接下来要收邮件、写邮件,总不能每次操作都让用户输入用户名和密码吧,为了解决这个问题,session的方案就被提了出来,事实上它并不是什么新技术,而且也不能脱离http协议以及任何现有的web技术。 原理很简单,假设你访问网页时就像逛澡堂,第一次进去你是没有钥匙的,这个时候你交了钱服务台就分配一把钥匙给你,你走到哪里都要带上,因为这是你身份的唯一标识,接下来你用这把钥匙可以去打开一个专有的储物柜存储你的衣物,游完泳,你再用钥匙去打开柜子拿出衣物,最后离开游泳池时,把钥匙归还,你的这次游泳的过程就是一次session,或者叫做会话,在这个例子中,钥匙就是session的key,而储物柜可以理解为存储用户会话信息的介质。 那么在web server中如何实现session呢?想必看了上面的例子你会很容易理解,主要是解决两个问题,一个是钥匙的问题,一个是存储用户信息的问题。对于第一个问题,即什么东西可以让你每次请求都会自动带到服务器呢?如果你比较了解http协议,那么答案一目了然,就是cookie,如果你想为用户建立一次会话,可以在用户授权成功时给他一个cookie,叫做会话id,它当然是唯一的,比如php就会为建立会话的用户默认set一个名为phpsessid,值看起来为一个随机字符串的cookie,如果下次发现用户带了这个cookie,服务器就知道,哎呀,刚刚这位顾客来了。 剩下的是解决第二个问题,即如何存储用户的信息,服务器知道会话id为abc的用户来了,那abc想存储自己的私人信息,比如购物车信息,如何处理?这个时候可以用内存、也可以用文件,也可以用数据库了,但有个要求是,数据需要用用户的会话id即可取到,比如php就默认会把会话id为abc的用户会话数据存储到/tmp/phpsess_abc的文件里面,每次读取都要反序列化程序可以理解的数据,写的时候又需要序列化为持久的数据格式。 较好理解的描述: session被用于表示一个持续的连接状态,在网站访问中一般指代客户端浏览器的进程从开启到结束的过程。session其实就是网站分析的访问(visits)度量,表示一个访问的过程。 session的常见实现形式是会话cookie(session cookie),即未设置过期时间的cookie,这个cookie的默认生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。实现机制是当用户发起一个请求的时候,服务器会检查该请求中是否包含sessionid,如果未包含,则系统会创造一个名为JSESSIONID的输出 cookie返回给浏览器(只放入内存,并不存在硬盘中),并将其以HashTable的形式写到服务器的内存里面;当已经包含sessionid是,服务端会检查找到与该session相匹配的信息,如果存在则直接使用该sessionid,若不存在则重新生成新的 session。这里需要注意的是session始终是有服务端创建的,并非浏览器自己生成的。 但是浏览器的cookie被禁止后session就需要用get方法的URL重写的机制或使用POST方法提交隐藏表单的形式来实现。 二、如何实现session的共享? 首先我们应该明白,为什么要实现共享,如果你的网站是存放在一个机器上,那么是不存在这个问题的,因为会话数据就在这台机器,但是如果你使用了负载均衡把请求分发到不同的机器呢?这个时候会话id在客户端是没有问题的,但是如果用户的两次请求到了两台不同的机器,而它的session数据可能存在其中一台机器,这个时候就会出现取不到session数据的情况,于是session的共享就成了一个问题。 1.各种web框架早已考虑到这个问题,比如asp.net,是支持通过配置文件修改session的存储介质为sql server的,所有机器的会话数据都从同一个数据库读,就不会存在不一致的问题; 2.以cookie加密的方式保存在客户端.优点是减轻服务器端的压力,缺点是受到cookie的大小限制,可能占用一定带宽,因为每次请求会在头部附带一定大小的cookie信息,另外这种方式在用户禁止使用cookie的情况下无效. 3.服务器间同步。定时同步各个服务器的session信息,此方法可能有一定延时,用户体验也不是很好。 4.php支持把会话数据存储到某台memcache服务器,你也可以手工把session文件存放的目录改为nfs网络文件系统,从而实现文件的跨机器共享。

03
领券