美文网首页
HTTP(二)

HTTP(二)

作者: 3疯simplebook | 来源:发表于2018-05-21 00:55 被阅读0次

一.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 中默认所有的连接都是长连接

相关文章

  • HTTP(二)

    一.URL/URI 我们经常会用到 URL,全称统一资源定位符(Uniform Resource Locator)...

  • HTTP(二)

    HTTP 协议的底层其实是由 TCP 协议和 IP 协议(简称 TCP/IP)构建的 TCP 传输控制协议(Tra...

  • HTTP(二)

    HTTP 特点 1 HTTP 是灵活可扩展的,可以任意添加头字段实现任意功能; 2. HTTP 是可靠传输协议,基...

  • Http(二)

    一、GET与POST请求 POST也可以跟GET一样获取到资源(图片) GET获取图片—— POST在html中可...

  • HTTP之二:HTTP版本

    本文仅供笔者平日学习笔记之用,侵删原文:https://mp.weixin.qq.com/s/wZONAYSlku...

  • (二)HTTP URI

    Author: Xu FC URL URL 组件Scheme: scheme:协议缩写的小写,比如 http/ft...

  • HTTP组成(二)

    开始之前先来一张思维导图,让我们对HTTP的组成有一个简单的了解 本文主要从以下三点来了解HTTP协议 1、报文 ...

  • 入门:HTTP(二)

    一、HTTP协议HTTP协议的底层其实是TCP协议和IP协议构建的 TCP(Transmission Contro...

  • 图解HTTP(二)

    图解HTTP第二章 通过请求和响应的交换达成通讯 应用HTTP协议时,必定有一端担任客户端,另一端担任服务器端 请...

  • HTTP Method(二)

    HTTP Method http://www.cnblogs.com/ID890/p/http.html 简介: ...

网友评论

      本文标题:HTTP(二)

      本文链接:https://www.haomeiwen.com/subject/doyndftx.html