美文网首页
HTTP——啥是HTTP

HTTP——啥是HTTP

作者: 章鱼要回家 | 来源:发表于2019-02-28 17:36 被阅读0次

    本文为《图解HTTP》第二章总结+摘录。

    HTTP协议是众多TCP/IP协议中的一个,同其他协议一起,服务于客户端和服务器端的通信。请求访问资源的一端为客户端,提供资源响应的一端为服务器端。使用HTTP协议通信的两端,必定一端为客户端,一端为服务器端。

    HTTP如何运作?

    根据HTTP协议的规定,请求从客户端发出,服务器端响应请求并返回,即通信是从客户端的请求开始建立的。

    请求报文

    请求报文由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成。
    请求报文示例:

    GET /index.htm HTTP/1.1
    Host: hackr.jp
    Connection: keep-alive
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 16
    name=ueno&age=37

    响应报文

    接收到该请求的服务器,会将处理结果以响应的形式返回。响应报文由协议版本、状态吗、用以解释状态码的原因短语、可选的响应首部字段以及实体主体构成。
    响应报文示例:

    HTTP/1.1 200 OK
    Date: Tue, 10 Jul 2012 06:50:15 GMT
    Content-Length: 362
    Content-Type: text/html
    <html>
    ...

    HTTP特色

    HTTP协议是一个简单的协议,每次有新请求发送时,就会对应产生新响应,协议本身不保存任何请求报文和响应报文的信息。

    这一设定带来了一些麻烦,例如一些需要身份验证网站,用户登录后在网站中从一个网页跳转至该站的另一个网页,因为HTTP没有记忆,用户就需要重新登录,这肯定是不合理的。网站需要保存用户的状态,因为它需要知道是谁向它发送了请求。

    Cookie技术的出现就是为了解决这个问题。它使得我们使用HTTP协议通信时,可以管理状态。

    HTTP方法

    HTTP方法用于告知服务器客户端的意图,可以指定请求的资源按期望产生某种行为。
    HTTP/1.1中的方法有:

    • GET 请求访问被URI识别的资源
    • POST 向URI提交HTTP请求的主体内容
    • PUT 上传文件 不常用
    • HEAD 同GET方法,只是不返回报文主体部分 用于确认URI的有效性
    • DELETE 删除指定文件 不常用
    • OPTIONS 查询URI请求的资源支持的方法
    • TRACE 让服务器将之前的请求环回给客户端 不常用
    • CONNECT 要求与代理服务器通信时建立隧道

    *GET和POST的区别是一个难点,这篇文章HTTP 方法:GET 对比 POST可以看一下。

    HTTP keep-alive和管线化

    最初的HTTP版本,每进行完一次通信,就要断开TCP连接,现代的网页包含的信息量很大,除了文字,还包含图片、视频、音频等,这样就导致了通信开销加大,加载一个网页,需要建立多次连接才可以完成。
    HTTP/1.1中所有的连接默认为持久连接。

    管线化(pipelining)技术是可以并行发送多个请求,无需等待响应后再发送。

    持久连接和管线化都提升了响应速度。

    使用Cookie

    上文讲到由于HTTP是无状态协议,所以用Cookie来进行状态管理。Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态。

    Cookie在服务器端生成,通过响应报文发送给客户端, 客户端保存Cookie。在发送下次请求时,客户端会在请求报文中加入Cookie值,服务器端收到后通过检查和对比,找到之前的状态信息。

    相关文章

      网友评论

          本文标题:HTTP——啥是HTTP

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