HTTP(二)

2018-05-21  本文已影响0人  3疯simplebook

一.URL/URI

我们经常会用到 URL,全称统一资源定位符(Uniform Resource Locator),还有一种是 URI,统一资源标识符(Uniform Resource Identifier),他们的单词有着某种意义,以 URI 为例

Uniform
规定统一格式来便于处理不同资源,识别资源指定的访问形式,加入新方案会更容易,比如 https:

Resource
资源,可以标识的任何东西

Identifier
表示可标识的对象

所以,URI 是由某个协议方案来表示资源的定位标识符,举个例子,我们采用 http 协议或者 ftp 协议,协议方案就是 http 和 ftp

而 URL 则是资源地点,可以说 URL 是 URI 的子集

二.简单的 HTTP 请求报文

HTTP 有不同的版本,我们针对 1.1 来学习

HTTP 协议的作用其实就是用于客户端和服务端之间的通信,也就是说使用 HTTP 协议进行必须一方是客户端(也就是请求方)和一方是服务端(提供资源的一方)

HTTP 是一种不保存状态的协议,也就是无状态协议,我们可以理解为在使用 HTTP 通信后,HTTP 本身并不会对我们产生的信息进行保存

使用 HTTP 会用到请求报文,请求报文是由请求方法,请求 URL, 协议版本和可选的的请求首部字段和内容实体构成,下面我们来看一下 HTTP 报文的内容

GET /index.html HTTP/1.1
Host: jianshu.com

其中 GET 就是请求方法,访问服务器的类型, /index.html 表示请求的资源,请求 URL,最后的 HTTP/1.1 就是请求的版本号了

而服务端会返回什么样的怎么样的响应报文

HTTP/1.1 200 OK
Date: Fri, 19 May 2018 08:00:34 GMT
Content-Length: 279
Content-Type: text/html

<html>

HTTP/1.1 肯定代表的协议版本我们已经知道,而 200 是状态码,熟悉的还有 404 等,OK 是原因短语,Date 则代表的创建响应的日期时间,含 Content-Length 之后的内容代表资源主体

所以我们可以得知,响应报文主要由协议版本,状态码,用于解释状态码的原因短语,可选的响应首部字段以及实体主体构成

三.GET/POST

HTTP 请求报文里提到了请求方法,HTTP 中的请求方法就是 GET 和 POST,还有不常用的 PUT,HEAD, DELETE,OPTION,TRACE,CONNECT等

我们主要是介绍常用的 GET 和 POST

GET
顾名思义,就是获取,用来获取指定的资源
请求内容放在 url 中
请求参数有大小限制,参数直接暴露在 url 中,不适合含密传输

POST
GET 是获取,自然 POST 就是传输,GET 也可以传输,但是由诸多限制,我们之后会说到,POST 更多的是上传
请求内容放在报文中
参数大小没有限制,支持多种格式,适合传递密码,用于表单登陆,比较安全

四.Cookie

我们上面说到其实 HTTP 是一种无状态的协议,但是我们有时在登陆 QQ 邮箱时发现我们的邮箱名已经被记住了,这又是怎么回事呢?

是这样的,随着我们 WEB 技术的不断发展,一个网站可能对应多个网页,你总不能每个网页都重新去登陆一次,对用户体验是不好的,既然由这方面的需求,技术也会得到改善,那当时解决这个引入了什么呢?

对,那就是 cookie

Cookie 是通过在请求和响应报文中写入 Cookie 信息来控制客户端的状态

具体是通过服务器端发送的响应报文里有一个名为 Set-Cookie 的首部字段信息来通知客户端保存 Cookie,当下次客户端再次发送请求时,客户端就会在请求报文里加入 Cookie 值然后发出去

五.HTTP 长连接

以前进行的 HTTP 通信其实都是一些小文本的通信,所以说当时每进行一次 HTTP 通信就要断开一次 HTTP 连接其实不会有比较感觉迟缓

但是随着互联网的发展,我们现在每打开一个网页,伴随大量的图片和文字,访问一个 HTML 文件也会访问其他的图片资源,就会产生很多 HTTP 请求,频繁的连接和断开,就会导致网页打开的很慢,图片半天加载不出来

为了解决这个问题,在 HTTP 1.1 就提出了持久连接,也被称做 keep-alive,其特点是,只要任意一端没有明确提出断开连接,就保持 TCP 连接状态

这样省去了每发起一次 HTTP 服务就要建立一次 TCP 连接的时间,在网页加载中是非常有效的,所以在 HTTP 1.1 中默认所有的连接都是长连接

上一篇下一篇

猜你喜欢

热点阅读