HTTP 请求的头信息里面,Referer
是一个常见字段,提供访问来源的信息。
很多开发者知道这个字段,但是说不清它的具体细节。本文详细介绍该字段。
一、Referer 的含义
现实生活中,购买服务或加入会员的时候,往往要求提供信息:"你从哪里知道了我们?"
记录-交流-Web开发知识分享
Socket(套接字)一直是网络层的底层核心内容,也是 TCP/IP 以及 UDP 底层协议的实现通道。随着互联网信息时代的爆炸式发展,当代服务器的性能问题面临越来越大的挑战,著名的 C10K 问题(http://www.kegel.com/c10k.html)也随之出现。幸亏通过大牛们的不懈努力,区别于传统的 select/poll 的 epoll/kqueue 方式出现了,目前 linux2.6 以上的内核都普遍支持,这是 Socket 领域一项巨大的进步,不仅解决了 C10K 问题,也渐渐成为了当代互联网的底层核心技术。libevent 库就是其中一个比较出彩的项目(现在非常多的开源项目都有用到,包括 Memcached),感兴趣的朋友可以研究一下。
由于网络上系统介绍这个部分的文章并不多,而涉及 PHP 的就更少了,所以石头君在这里希望通过《Socket深度探究4PHP》这个系列给对这个领域感兴趣的读者们一定的帮助,也希望大家能和我一起对这个问题进行更深入的探讨。首先,解释一下目前 Socket 领域比较易于混淆的概念有:阻塞/非阻塞、同步/异步、多路复用等。
1、阻塞/非阻塞:这两个概念是针对 IO 过程中进程的状态来说的,阻塞 IO 是指调用结果返回之前,当前线程会被挂起;相反,非阻塞指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。…
Web应用程序是消费者和企业的主要内容。在用于移动和理解位的许多现有协议中,HTTP具有压倒性的思想份额。当您遇到并了解Web应用程序开发的细微差别时,大多数人可能很少关注最终运行应用程序的操作系统。Dev和Ops的分离只会让情况变得更糟。但随着DevOps文化变得普遍,开发人员负责在云中运行他们的应用程序,更好地理解后端操作系统的细节是一个明显的优势。如果您将后端部署为供个人使用或供少数并发用户使用的系统,您实际上不必费心使用Linux以及后端如何扩展。…
HTML中有一个名为rel
的属性,是relationship这个单词的缩写,指明两个文档之间的关系,专门用来链接相关元素上,如<a>
、<area>
、<form>
或<link>
元素上,因此rel
的属性值也是“链接类型”的代称。
rel
支持非常多的属性值,包含的知识非常多,且有些属性值非常重要,完整细读至少需要30分钟时间。
允许使用的链接元素 | 不允许使用的链接元素 |
---|---|
<a>、<area>、<link> | <form> |
单词alternate有交替、替换的意思。顾名思意就是链接有替换内容。主要有下面3大应用场景,有些场景还非常实用。
<link>
元素中,和stylesheet
链接类型一起使用,配合title
属性(必须),可以定义替换CSS,可以以一种体验更好的方式实现类似换肤这种功能。兼容性非常好,IE,Chrome和Firefox均支持这种更原生的换肤效果实现。具体原理与实现可以参见这篇热门文章:“link rel=alternate网站换肤功能最佳实现”。application/rss+xml
或者Jacek Schae 原作,授权 LeanCloud 翻译。
我们将基于 RealWorld 示例应用对比前端框架。RealWorld 示例应用的特点:
比待办事项类应用更复杂。通常待办事项类应用不足以传达足够多的知识见解构建实际应用。
项目遵循特定规则。提供后端 API、静态标记语言、风格、API 规范。
理想情况下,会是高一致性、高真实度的项目,由使用该技术的专业人士编写或审阅。
我在生产中使用MongoDB多年。在这个时候,我尝试了不同的工具和开发方法; 一些证明对我们有用,有些则没有。在这篇文章中,我喜欢分享方便的CLI工具,用于处理MongoDB,基于Docker的本地开发方法和有用的Mongo shell代码片段。
…
设计HTTP和RESTful API可能很棘手,因为没有官方和强制标准。基本上,有许多方法可以实现API,但其中一些已在实践中得到证实,并且已被widley采用。这篇文章介绍了构建HTTP和RESTful API的最佳实践。我们将讨论URL结构,HTTP方法,创建和更新资源,设计关系,有效负载格式,分页,版本控制等等。
我完全重写了这篇文章。我重新访问并扩展了现有的部分并添加了许多新的部分:HTTP方法和状态代码的新概述,PATCH,清除PUT和POST的语义,data
字段,设计关系,REST与RPC风格的API,可演化性,版本控制方法,基于键集分页,JSON:API,JSON:API启发的有效负载格式。…
网页在不同尺寸的设备上,都有良好的显示效果,叫做"响应式设计"(responsive web design)。
响应式设计的网页图像,就是"响应式图像"(responsive image)。
响应式图像的解决方案有很多,JavaScript 和 CSS 都可以实现。本文介绍最简单的、语义性最好的 HTML 方法,浏览器原生支持。…
大多数现代Web应用程序都公开了客户端可用于与应用程序交互的API。精心设计的Web API应旨在支持:
本指南介绍了在设计Web API时应考虑的问题。
2000年,Roy Fielding提出了Representational State Transfer(REST)作为设计Web服务的架构方法。REST是一种用于构建基于超媒体的分布式系统的架构风格。REST独立于任何底层协议,不一定与HTTP绑定。但是,大多数常见的REST实现都使用HTTP作为应用程序协议,本指南重点介绍如何为HTTP设计REST API。
REST over HTTP的主要优点是它使用开放标准,并且不会将API或客户端应用程序的实现绑定到任何特定实现。例如,REST Web服务可以用ASP.NET编写,客户端应用程序可以使用任何可以生成HTTP请求和解析HTTP响应的语言或工具集。
以下是使用HTTP的RESTful API的一些主要设计原则:
HTTP 请求的头信息里面,Referer
是一个常见字段,提供访问来源的信息。
很多开发者知道这个字段,但是说不清它的具体细节。本文详细介绍该字段。
现实生活中,购买服务或加入会员的时候,往往要求提供信息:"你从哪里知道了我们?"
下面描述了每个状态代码,包括它可以遵循哪种方法以及响应中所需的任何元信息的描述。
此类状态代码表示临时响应,仅包含Status-Line和可选标头,并以空行终止。此类状态代码没有必需的标头。由于HTTP / 1.0没有定义任何1xx状态代码,服务器不得向HTTP / 1.0客户端发送1xx响应,除非在实验条件下。
客户必须准备好在常规响应之前接受一个或多个1xx状态响应,即使客户端不期望100(继续)状态消息。用户代理可以忽略意外的1xx状态响应。
代理必须转发1xx响应,除非代理与其客户端之间的连接已关闭,或者除非代理本身请求生成1xx响应。(例如,如果是
代理在转发请求时添加“Expect:100-continue”字段,然后它不需要转发相应的100(继续)响应。)…
近期评论