美文网首页
浅谈HTTP

浅谈HTTP

作者: small_hao | 来源:发表于2019-06-15 18:59 被阅读0次

1.什么是HTTP协议?

HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议。

2.HTTP的前世今生?

HTTP 0.9: 只允许客户端发送GET这一种请求,且不支持请求头,已过时。

HTTP 1.0: 无状态、无连接的应用层协议;默认短链接,每次请求会建立一个tcp连接;请求阻塞,必须在前一个请求到达才能发                     起下一个请求。

HTTP 1.1:新增Connection,默认长连接;支持管道化;新增缓存处理

HTTP 2.0:二进制分帧,多路复用(或连接共享),头部压缩,服务器推送

3.HTTP有哪些请求方式?

GET、HEAD、POST、PUT、PATCH、DELETE、OPTIONS、CONNECT、TRACE

4.HTTP有哪些状态码?

状态码类别原因

1XXInformational(信息性状态码)接收的请求正在处理

2XXSuccess(成功状态码)    请求正常处理完毕

3XXRedirection(重定向状态码)需要进行附加操作以完成请求

4XXClient Error(客户端错误状态码)服务器无法处理请求

5XXServer Error(服务器错误状态码)服务器处理请求出错

5.Cookie和Session

HTTP 协议是无状态的,主要是为了让 HTTP 协议尽可能简单,使得它能够处理大量事务。HTTP/1.1 引入 Cookie 来保存状态信息。

Cookie 是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器之后向同一服务器再次发起请求时被携带上,用于告知服务端两个请求是否来自同一浏览器。由于之后每次请求都会需要携带 Cookie 数据,因此会带来额外的性能开销(尤其是在移动环境下)。

Cookie 曾一度用于客户端数据的存储,因为当时并没有其它合适的存储办法而作为唯一的存储手段,但现在随着现代浏览器开始支持各种各样的存储方式,Cookie 渐渐被淘汰。新的浏览器 API 已经允许开发者直接将数据存储到本地,如使用 Web storage API (本地存储和会话存储)或 IndexedDB。

除了可以将用户信息通过 Cookie 存储在用户浏览器中,也可以利用 Session 存储在服务器端,存储在服务器端的信息更加安全。Session 可以存储在服务器上的文件、数据库或者内存中。也可以将 Session 存储在 Redis 这种内存型数据库中,效率会更高。服务器返回的响应报文的 Set-Cookie 首部字段包含了这个 Session ID,客户端收到响应报文之后将该 Cookie 值存入浏览器中;客户端之后对同一个服务器进行请求时会包含该 Cookie 值,服务器收到之后提取出 Session ID,从 Redis 中取出用户信息,继续之前的业务操作。

Cookie 与 Session 选择

Cookie 只能存储 ASCII 码字符串,而 Session 则可以存取任何类型的数据,因此在考虑数据复杂性时首选 Session;

Cookie 存储在浏览器中,容易被恶意查看。如果非要将一些隐私数据存在 Cookie 中,可以将 Cookie 值进行加密,然后在服务器进行解密;

对于大型网站,如果用户所有的信息都存储在 Session 中,那么开销是非常大的,因此不建议将所有的用户信息都存储到 Session 中。

6.HTTPS的优势

HTTP 有以下安全性问题:

使用明文进行通信,内容可能会被窃听;

不验证通信方的身份,通信方的身份有可能遭遇伪装;

无法证明报文的完整性,报文有可能遭篡改。

HTTPs 并不是新协议,而是让 HTTP 先和 SSL(Secure Sockets Layer)通信,再由 SSL 和 TCP 通信,也就是说 HTTPs 使用了隧道进行通信。通过使用 SSL,HTTPs 具有了加密(防窃听)、认证(防伪装)和完整性保护(防篡改)。

7.从输入URL到浏览器显示页面发生了什么?

一、网络通信

首先需了解TCP/IP的网络模型

1.用户输入url,例如http://www.baidu.com。其中http为协议,www.baidu.com为网络地址,及指出需要的资源在那台计算机上。一般网络地址可以为域名或IP地址,此处为域名。为了让计算机理解这个地址还需要把它解析为IP地址。

2.DNS应用层域名解析

客户端先检查本地是否有对应的IP地址,若找到则返回响应的IP地址。若没找到则请求上级DNS服务器,直至找到或到根节点。

3.通过IP寻址和arp找到Mac地址

4.应用层客户端发送HTTP请求

5.传输层TCP报文传输建立连接

位于传输层的TCP协议为传输报文提供可靠的字节流服务。它为了方便传输,将大块的数据分割成以报文段为单位的数据包进行管理,并为它们编号,方便服务器接收时能准确地还原报文信息。TCP协议通过“三次握手”等方法保证传输的安全可靠。

6.服务器处理请求并且作出相应.

7.浏览器得到响应

二、页面渲染

1.渲染页面

相关文章

  • 浅谈HTTP

    浅谈HTTP 目录:1.补充2.HTTP 请求包括哪些部分,如何用Chrome开发者工具查看 HTTP 请求内容3...

  • 浅谈Http

  • 浅谈HTTP

    HTTP是什么呢? 学名超文本传输协议(HyperText Transfer Protocol),用于传输诸如HT...

  • 浅谈HTTP

    1.什么是HTTP协议? HTTP是hypertext transfer protocol(超文本传输协议)的简写...

  • 浅谈 http

    什么是httphttp 是一种计算机之间的交流通信协议, 就比如: 手机通信, 有移动, 电信等, 他们都是遵守一...

  • 浅谈 HTTP

    这两天读了下《图解HTTP》,此处谨做读后感记录。 1. HTTP —— 超文本传输协议 我们所用的 Web 使用...

  • MVP

    *浅谈 MVP in Android[http://blog.csdn.net/lmj623565791/arti...

  • 浅谈HTTP协议

    一、HTTP简述 1.Http协议概述 超文本传输协议(HyperText Transfer Tansfer Pr...

  • HTTP协议浅谈

    在鸡年的最后一天完成了这篇文章。表示愉悦的同时,更要祝福大家狗年大吉吧....下方是一根不正经的分割线... 重新...

  • 浅谈HTTP缓存

    一、HTTP缓存概述(HTTP Cache) 要搞清楚HTTP缓存,首先当然是要搞清楚缓存是啥,按照MDN的描述,...

网友评论

      本文标题:浅谈HTTP

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