用户代理de疑惑

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

在计算机科学中,用户代理(英语:User Agent)指的是代表使用者行为的软件(软件代理程序)所提供的对自己的一个标识符。例如,一个电子邮件阅读器就是一个电子邮件客户端,而在会话发起协议 (SIP) 中,用户代理的术语指代的是一个通信会话的所有两个终端[1]

在很多场合,用户代理作为一个主从式架构的分布式计算系统中的通信所用网络传输协议的客户端而行为。特别的,超文本传输协议指定了发起请求的客户端软件,使用一个“User-Agent”请求头,即使在客户端不由用户操纵的时候。SIP 协议(基于 HTTP)沿用了这一用法。

格式

用户代理字符串的格式目前被RFC 2616 (HTTP/1.1)的 Section 14.43 所指定。在 HTTP 中,用户代理字符串的格式是产品标记(关键字)和可选的注释所组成的一个列表。例如如果你的产品叫做 WikiBrowser, 你的用户代理字符串就可能是 WikiBrowser/1.0 Gecko/1.0。“最重要的”产品组件被最先列出。这个字符串的部分如下所示:

  • 产品名称和版本(WikiBrowser/1.0
  • 排版引擎和版本(Gecko/1.0)。在这种情况下,这指示了排版引擎和版本。

但不幸的是,在浏览器大战期间,很多网络服务器被配置为只给被识别为某些版本的 Mozilla 的客户端发送需要高级功能的网页。

由于这个原因,绝大多数网页浏览器使用的 User-Agent 值如下:Mozilla/[version] ([system and browser information]) [platform] ([platform details]) [extensions]}}。例如,iPad 上的 Safari 使用的就是下述:

Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405

这个字符串的组成如下:

  • Mozilla/5.0:先前用以指示与 Mozilla 排版引擎的兼容性
  • (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us):浏览器所运行于的系统的详细信息
  • AppleWebKit/531.21.10:浏览器所使用的平台
  • (KHTML, like Gecko):浏览器平台的细节
  • Mobile/7B405:被浏览器用于指示特定的直接由浏览器提供或者通过第三方提供的可用的增强功能。这方面的一个实例是 Microsoft Live Meeting,它注册了一个扩展以使 Live Meeting 服务知道该软件是否已经安装上,这意味着它可以为加入会议提供一个简化的体验。

转载于:https://my.oschina.net/u/919580/blog/141792

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547702.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

问题“The connection to the server....:6443 was refused - did you specify the right host or port?”的处理!

问题“The connection to the server <master>:6443 was refused - did you specify the right host or port?”的处理&#xff01; 一、故障产生 在不关闭kubernets相关服务的情况下&#xff0c;对kubernets的master节点进行重启。&#xff08;模拟服务器的异常掉电&a…

故障error: failed to run Kubelet: failed to create kubelet: misconfiguration: kubelet cgroup driver: “

环境&#xff1a; docker&#xff1a;18.09.9 kubernetes&#xff1a;1.17 错误信息&#xff1a; error: failed to run Kubelet: failed to create kubelet: misconfiguration: kubelet cgroup driver: "cgroupfs" is different from docker cgroup driver: "…

php http 类,php写的http请求封装类

本文介绍一个php实现的http请求封装类&#xff0c;封装了三种post提交方法和一个request请求方法&#xff0c;并提供了调用示例&#xff0c;供大家学习参考。在php编程调试时&#xff0c;经常需要模拟提交。另外&#xff0c;在抓取一些页面时&#xff0c;需要经常请求别人的页面…

iBatis for Net 代码生成器(CodeHelper)附下载地址(已经升级为V 1.1)

CodeHelper是一款可以自己定义模板和生成内容的代码生成器&#xff0c;目前只支持MsSql数据库&#xff0c;这款代码生成器的初衷也只是为了生成MyBatis.net框架的配置文件而写的一个轻量级的代码生成器。CodeHelper下载文件包介绍&#xff1a;Template\... 存放模板文件夹&…

在Access中执行SQL语句

Access在小型系统开发中等到了广泛使用。虽然Access提供了可视化的操作方法&#xff0c;但许多开发人员还是喜欢直接用SQL语句操作数据表。如何在Access中打开SQL视图&#xff0c;对于初次使用Access的程序员可得费点时间呢。 1、ACESS2007 &#xff08;1&#xff09;点击“创建…

K8S+Helm 安装 Jupyterhub

准备配置文件 生成随机数 openssl rand -hex 32 # 8fc2826e9ce6930ec26c9fd541c0620b448a947357edbdf9647516af16bbc798配置config.yaml如下&#xff0c;token是上一步生成 proxy:secretToken: "8fc2826e9ce6930ec26c9fd541c0620b448a947357edbdf9647516af16bbc798&quo…

iBatis for net 框架使用

简介&#xff1a;ibatis 一词来源于“internet”和“abatis”的组合&#xff0c;是一个由Clinton Begin在2001年发起的开放源代码项目&#xff0c;到后面发展的版本叫MyBatis但都是指的同一个东西。最初侧重于密码软件的开发&#xff0c;现在是一个基于Java的持久层框架&#x…

php 图片后缀,PHP如何实现图片无后缀

在偶然间网站开发&#xff0c;实现网页内容抓取的时候&#xff0c;发现有些图片居然没有后缀。然后怀着踽踽独行的心态&#xff0c;去尝试了下这个以前没有遇见过的“重大发现”&#xff1a;当完成测试后&#xff0c;发现其原理&#xff0c;也是真心简单&#xff0c;其实也就是…

Office Web Apps Server 2013与PDF(一)

好吧……这个消息有点旧&#xff0c;迟了将近4个月。 Office Web Apps是微软各大服务产品系列中的一个基础服务&#xff0c;可以为SharePoint 2013、Exchange 2013、Lync 2013提供企业内文档的在线预览和编辑功能&#xff1b;同时它也是一个基础的互联网服务&#xff0c;为诸如…

nifi 实现数据库到数据库之间数据同步

数据同步 界面如下&#xff1a; 具体流程&#xff1a; 1、使用ExecuteSQL连接mysql数据库&#xff0c;通过写sql查询所需要的数据 2、nifi默认查出来的数据为Avro格式&#xff0c;所以需要ConvertAvroToJSON把Avro格式转化为json格式的数据 3、使用ConvertJSONToSQL把json数据转…

php 文件 后缀,php如何修改文件后缀名

php修改文件后缀名的方法&#xff1a;首先创建PHP文件&#xff1b;然后定义一个“changeTypeName”方法&#xff1b;接着获取文件绝对路径&#xff1b;最后通过“rename($fileRealPath, $compressCssFileRealPath);”修改即可。php 改变文件目录下文件的后缀名changeTypeName(&…

函数重载二义性:error C2668: 'pow' : ambiguous call to overloaded function

2013-07-08 14:42:45 当使用的函数时重载函数时&#xff0c;若编译器不能判断出是哪个函数&#xff0c;就会出现二义性&#xff0c;并给出报错信息。 问题描述&#xff1a; 在.cpp代码中用到pow函数&#xff0c;如下&#xff1a; long int MaxInteger pow( 2,8*sizeof(long in…

windows自定义快速启动(运行)命令

自定义运行&#xff08;windows键R&#xff09;里面命令&#xff0c;启动设置的程序&#xff0c;如图&#xff1a;它的设置方法有两种&#xff1a; 第一种设置方法&#xff1a; 第1步&#xff1a;在任意地方创建一个文件夹&#xff08;建议在D盘根目录创建&#xff09;&#xf…

python RSA加密、解密、签名

python中用于RSA加解密的库有好久个&#xff0c;本文主要讲解rsa、M2Crypto、Crypto这三个库对于RSA加密、解密、签名、验签的知识点。 知识基础 加密是为了保证传输内容隐私&#xff0c;签名是为了保证消息真实性。 服务器存私钥&#xff0c;客户端存公钥。&#xff08;服务…

php7 有参数类型,PHP7中的可空返回类型

小编典典PHP 7.1现在支持可为空的返回类型。我链接到的第一个RFC是他们使用的RFC&#xff1a;function nullOrString(int $foo) : ?string{return $foo%2 ? "odd" : null;}旧答案&#xff1a;由于我的评论实际上是对该问题的答案&#xff1a;PHP7尚不支持可空的返回…

DataGridview动态添加列

1.获取数据源&#xff08;select * from table名称&#xff09; 2.动态绑定数据源 1 private void GetTableInfo(DataTable dt)2 {3 listBh new List<BH_DICTInfo>();4 foreach (DataRow dr in dt.Rows)5 {6 …

C# 控制台应用程序输出颜色字体[更正版]

首先感谢院子里的“yanxinchen”&#xff0c;之前的方法是通过c#调用系统api实现的&#xff0c;相比之下我的有点画蛇添足了&#xff0c;哈哈。 最佳解决方案的代码&#xff1a; static void Main(string[] args){ Console.ForegroundColor ConsoleColor.Green; Consol…

MXNet结合kubeflow进行分布式训练

GPU集群配置MXNetCUDA 为方便控制集群&#xff0c;写了脚本cmd2all.sh #!/bin/bash if [ $# -lt 3 ]; thenecho "usage: $0 [type cmds hosts]"echo "for example: ./cmd2all.sh \"cmds\" \"touch t1.txt\" \"gpu1 gpu2\""…

php新建文件在指定目录下,PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台...

代码如下://取得指定文件夹的目录名称function get_dir_name($dir_path,$file){$dirpath $dir_path;$dir scandir($dirpath);foreach ($dir as $key>$value){if (is_dir($dirpath./.$value) && $value ! . && $value ! ..){//echo $dirpath./.$value./.$f…

性能测试流程

一个项目如果有性能需求&#xff0c;那恭喜你&#xff0c;你接到活了&#xff0c;于是你开始着手开始性能测试。 首先第一步&#xff0c;你会先去了解业务&#xff0c;与此同时&#xff0c;产品或者项目经理也会给出他们的一些性能需求&#xff0c;和相关的指标要求&#xff0c…