浏览器的UA字串的标准格式:浏览器标识 (操作系统标识; 加密等级标识; 浏览器语言) 渲染引擎标识版本信息。但各个浏览器有所不同。
字串说明:
1、浏览器标识
出于兼容及推广等目的,很多浏览器的标识相同,因此浏览器标识并不能说明浏览器的真实版本,真实版本信息在 UA 字串尾部可以找到。
2、操作系统标识
N: 表示无安全加密
I: 表示弱安全加密
U: 表示强安全加密
4、浏览器语言
在首选项 > 常规 > 语言中指定的语言
5、渲染引擎
显示浏览器使用的主流渲染引擎有:Gecko、WebKit、KHTML、Presto、Trident、Tasman等,格式为:渲染引擎/版本信息
6、版本信息
显示浏览器的真实版本信息,格式为:浏览器/版本信息
int send_request(int fd, void *arg) { int need, begin, n; char request[1024] = {0}; Url *url = (Url *)arg; sprintf(request, "GET /%s HTTP/1.0 " "Host: %s " "Accept: */* " "Connection: Keep-Alive " "User-Agent: Mozilla/5.0 (compatible; Qteqpidspider/1.0;) " "Referer: %s ", url->path, url->domain, url->domain); need = strlen(request); begin = 0; while(need) { n = write(fd, request+begin, need); if (n <= 0) { if (errno == EAGAIN) { //write buffer full, delay retry usleep(1000); continue; } SPIDER_LOG(SPIDER_LEVEL_WARN, "Thread %lu send ERROR: %d", pthread_self(), n); free_url(url); close(fd); return -1; } begin += n; need -= n; } return 0; }