DailyLearning icon indicating copy to clipboard operation
DailyLearning copied to clipboard

网络Http请求

Open FrizzleFur opened this issue 7 years ago • 2 comments

FrizzleFur avatar Mar 23 '18 07:03 FrizzleFur

HTML

Hypertext Markup Language 超文本链接标示语言

Web Server

  • 加载简单的Web页面可能需要很多个请求,需要请求不同的服务器索取资源:HTML页面本身、图像或其他媒体

  • HTTP请求总是涉及客户端和服务器。

  • 您现在使用的是HTTP客户端——Web浏览器。

  • 您的浏览器向Web服务器发送HTTP请求,服务器将响应发送回浏览器。

  • 浏览器拥有所有的用户界面、动画和图形内容。

  • 服务器只需要做一件事:处理传入的请求。

  • 服务器只是一个程序,它接受来自网络上其他程序的连接。

当你启动一个服务器程序时,它会等待客户端连接到它,就像演示服务器等待Web浏览器请求页面一样。然后,当一个连接出现时,服务器运行一段代码,比如调用一个函数来处理每个传入的连接。从这个意义上说,一个连接就像一个电话:它是一个通道,通过它,客户端和服务器可以相互通信。Web客户端通过这些连接发送请求,服务器将响应发送回。

本地服务器

  • 在一个文件目录中启动Python 本地服务器,端口8000

您的浏览器发送的每个请求的条目的服务器日志:

然后在浏览器中访问:http://localhost:8000/

这就是Python演示服务器,在自己的计算机上运行。它提供本地磁盘上的文件,以便您可以在浏览器中查看它们。

你在你的浏览器中输入localhost8000 时,你的浏览器向运行的Python程序发送一个HTTP请求。您的浏览器将该程序的响应数据在UI上展现。在这种情况下,它显示了一个作为一块HTML的目录列表。您还可以使用浏览器的开发工具查看它发送的HTML。

URI

Web地址也被称为统一资源标识符的URI(Uniform Resource Identifier)。你以前见过很多这样的。从Web用户的角度来看,URI是一个文本,放在Web浏览器中,告诉它要到哪个页面。从Web开发人员的角度来看,它有点复杂。

URL

URL or Uniform Resource Locator

URL是网络上资源的URI。由于URI稍微精确一些,不要过分担心这个区别。

这里是一个例子:https://en.wikipedia.org/wiki/fish

这个URI有三个可见部分,用一点点标点符号隔开:

  • https 是该方案Scheme;
  • en.wikipedia.org 是主机名;
  • wiki/fish 是路径。

不同的URI可以有不同的部分

方案Scheme

URI的第一部分是该方案,它告诉客户如何访问资源。您以前见过的一些URI方案包括HTTP、HTTPS和File。File的URI告诉客户端访问本地文件系统中的文件。HTTP和HTTPS URI指向资源由Web服务器提供。

主机名

在一个HTTP URI方案后是一个主机名--有点像www.udacity.com或本地主机出现,接下来的事情。这告诉客户机要连接哪个服务器。

路径

在HTTP URI(以及许多其他)中,接下来出现的是路径,该路径标识服务器上的特定资源。服务器可以有很多资源,比如不同的网页、视频或API。路径告诉服务器客户机正在寻找的资源。

当你写一个URI没有路径,如http://udacity.com,浏览器填写默认路径,它是用一个斜线。这就是为什么http://udacity.com是http://udacity.com/相同(最后用一个斜线)。

用一个斜杠写的路径也被称为根。当你看演示服务器根URI HTTP:/本地:8000 / -你不看你的电脑的整个文件系统的根。它只是Web服务器提供的资源的根。演示服务器不会让Web浏览器访问正在运行的目录之外的文件。

URI相对路径

<a href="cliffsofinsanity.png">cliffsofinsanity.png</a>

在这样一个没有一个方案,或一个主机名-只是一个路径。这是一个相对URI引用。它与它出现的上下文是“相对的”——具体地说,是它所在的页面。这个URI不包含服务器的主机名或端口,但浏览器可以发现从上下文。如果您单击其中一个链接,浏览器就知道它需要从同一个服务器中获取原始页面。

URI其他部分

#标志称为片段。浏览器甚至不会发送到Web服务器。它让一个链接指向资源的一个特定的命名部分;在HTML页面中,它通过ID链接到一个元素。

FrizzleFur avatar Apr 11 '18 18:04 FrizzleFur

Cookie

客户端在请求server端数据时,cookie是由server端在返回客户端数据时,生成一个保存用户状态的cookie,一同返回给客户端。 cookie用来保存用户状态,区分用户;状态(cookie)保存在客户端。

  • 客户端发送的cookie在http请求报文的Cookie首部字段中
  • 服务端设置http响应报文的Set-Cookie首部字段

覆盖

name、path、domain等需要一致 cookie是有一定时间的: 一下cookie失效:

  • expires=过去的时间点
  • maxAge=0

cookie安全

cookie加密

Session

Session也是用于记录用户状态的,存于服务端,依赖于cookie.

FrizzleFur avatar May 01 '19 16:05 FrizzleFur