http从1到N学习(下)

发布于 2020-10-13  89 次阅读


一、http常见响应码

我们先来看几个常见的响应状态码:

200对应响应正常,表示服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。

404是没有找到请求的资源,服务器找不到请求的网页。

301为URL跳转,表示永久移动, 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或HEAD 请求的响应)时,会自动将请求者转到新位置。新位置通常会使用 Location 响应头进行指定。

更多的参考

http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml

https://twosecurity-resource.oss-cn-hangzhou.aliyuncs.com/resources/HTTP%20Status%20Code.pdf

二、cookie

Cookie是网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密)。因为HTTP本身是无状态协议,即服务器不知道用户上一次的请求的内容和次数,这严重阻碍了交互式Web应用程序的实现。在典型的网上购物场景中,用户浏览了几个页面,买了一盒饼干和两瓶饮料。最后结帐时,由于HTTP的无状态性,不通过额外的手段,服务器并不知道用户到底买了什么。 所以Cookie就是用来绕开HTTP的无状态性的“额外手段”之一。服务器可以设置或读取Cookie中包含信息,借此维护用户跟服务器会话中的状态。

Cookie如何分配

浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器。

cookie的内容主要包括:名字,值,过期时间,路径和域。

其中域可以指定某一个域比如.google.com,也可以指定一个域下的具体某台机器比如froogle.google.com路径就是跟在域名后面的URL路径。

路径与域合在一起就构成了cookie的作用范围。

Cookie的工作原理

Cookie定义了一些HTTP请求头和HTTP响应头,通过这些HTTP头信息使服务器可以与客户进行状态交互。

客户端请求服务器后,如果服务器需要记录用户状态,服务器会在响应信息中包含一个Set-Cookie的响应头,客户端会根据这个响应头存储Cookie信息。再次请求服务器时,客户端会在请求信息中包含一个Cookie请求头,而服务器会根据这个请求头进行用户身份、状态等较验。

三、url

url定义

客户向服务器程序发送请求,服务器程序向客户返回所需的万维网文档。在一个客户程序主窗口上显示的万维网文档称为页面。实现这一过程需要解决一个重要问题: 如何标志出分布在整个Internet上的万维网文档?这就需要使用统一资源定位符URL来标志,使每一个文档在整个Internet范围内具有唯一的标识符URL。

URL用来表示从因特网上得到的资源位置和访问这些资源的方法。URL给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位,从而实现对资源的操作。URL相当于一个文件名在网络范围的拓展。因此,URL是与Internet相连的机器上的任何可访问对象的一个指针。

URL的一般形式由以下格式组成:

协议指使用何种协议来获取万维网文档,最常用的是http,还有ftp等。

url跳转

URL跳转是一种当实际资源,如单个页面、表单或者整个 Web 应用被迁移到新的 URL 下的时候,保持(原有)链接可用的技术。

HTTP 协议提供了一种特殊形式的响应—— HTTP 重定向(HTTP redirects)来执行此类操作,该操作可以应用于多种多样的目标:网站维护期间的临时跳转,网站架构改变后为了保持外部链接继续可用的永久重定向,上传文件时的表示进度的页面,等等。

URL的原理

在 HTTP 协议中,重定向操作由服务器通过发送特殊的响应(即 redirects)而触发。HTTP 协议的重定向响应的状态码为 3xx 。浏览器在接收到重定向响应的时候,会采用该响应提供的新的URL ,并立即进行加载;大多数情况下,除了会有一小部分性能损失之外,重定向操作对于用户来说是不可见的。

不同类型的重定向映射可以划分为三个类别:永久重定向、临时重定向和特殊重定向。

永久重定向:这种重定向操作是永久性的。它表示原 URL 不应再被使用,而应该优先选用新的URL。搜索引擎机器人会在遇到该状态码时触发更新操作,在其索引库中修改与该资源相关的URL 。

临时重定向:有时候请求的资源无法从其标准地址访问,但是却可以从另外的地方访问。在这种情况下可以使用临时重定向。搜索引擎不会记录该新的、临时的链接。在创建、更新或者删除资源的时候,临时重定向也可以用于显示临时性的进度页面。

特殊重定向:除了上述两种常见的重定向之外,还有两种特殊的重定向。304 (Not Modified,资源未被修改)会使页面跳转到本地缓存的版本当中,而 300 (Multiple Choice,多项选择) 则是一种手工重定向:以 Web 页面形式呈现在浏览器中的消息主体包含了一个可能的重定向链接的列表,用户可以从中进行选择。

4.THE end

特殊重定向:除了上述两种常见的重定向之外,还有两种特殊的重定向。304 (Not Modified,资源未被修改)会使页面跳转到本地缓存的版本当中(该缓存已过期(?)),而 300 (Multiple Choice,多项选择) 则是一种手工重定向:以 Web 页面形式呈现在浏览器中的消息主体包含了一个可能的重定向链接的列表,用户可以从中进行选择。

本篇完结。


星榆叶叶昼离披,云粉千重凝不飞。