学习记录——Http协议(二)

一、学习总结 

  • 第八章:键入网址再按下回车,后面究竟发生了什么?
    • 使用 IP 地址访问 Web 服务器
    1. 浏览器访问127.0.0.1
    2. 浏览器和服务器使用“三次握手”建立 TCP 连接,经过 SYN、SYN/ACK、ACK 的三个包之后,浏览器与服务器的 TCP 连接就建立起来了。
    3. 浏览器按照 HTTP 协议规定的格式,通过 TCP 发送了一个“GET / HTTP/1.1”请求报文。

    4. Web 服务器回复了第五个包,在 TCP 协议层面确认

    5. 服务器处理完后,通过TCP发送了一个“HTTP/1.1 200 OK“响应报文,第六个包。

    6. 浏览器给服务器回复一个 TCP 的 ACK 确认,第七个包。

    7. 后面就是浏览器自带的“favicon.ico”、和长链接默认不会立即关闭连接。

    8. 关闭链接的“四次握手”,经过FIN、ACK、FIN、ACK的四个包之后浏览器与服务器的 TCP 连接就断开了。

  • 使用域名访问 Web 服务器

    1. 浏览器访问http://www.chrono.com

    2. 先到浏览器缓存中寻找解析文件,如果没有就到本机域名解析文件 hosts、还没有就要用 DNS 协议开始从操作系统、本地 DNS、根 DNS、顶级 DNS、权威 DNS 的层层解析,拿到IP。

    3. 如果获取的是静态文件,可能存在CDN。DNS 解析可能会给出 CDN 服务器的 IP 地址,这样你拿到的就会是 CDN 服务器而不是目标网站的实际地址。

    4. 如果需要加载的是”动态资源“。于是你发出的 HTTP 请求就要开始在互联网上的“漫长跋涉”,经过无数的路由器、网关、代理,最后到达目的地。

    5. 网站服务器架构可能是单台,也有可能是集群。通常在入口是负载均衡设备,例如四层的 LVS 或者七层的 Nginx,在后面是许多的服务器,构成一个更强更稳定的集群。

    6. 服务器中可能存在缓存服务器。通常有 memory 级缓存 Redis 和 disk 级缓 存 Varnish,它们的作用与 CDN 类似。

    7. 如果没有命中缓存,就要程序去计算了。然后获取到的数据原路返回。

 

  •  第九章:HTTP报文是什么样子的?
    • 实际要传输的数据之前附加了一个 20 字节的头部数据,存储 TCP 协议必须的额外信息,例如发送方的端口号、接收方的端口号、包序号、标志位等等。
    • HTTP 协议的请求报文和响应报文的结构基本相同,包括:起始行、头部字段集合、空行、消息正文
    • 请求行由三部分构成:请求方法、请求目标、版本号。例如:GET / HTTP/1.1
    • 状态行同样也是由三部分构成:版本号、状态码、原因。例如:HTTP/1.1 200 ok
    • 头部字段可以分为四类:通用字段头、请求字段头、响应字段头、实体字段

    1. Host字段,属于请求字段,只能出现在请求头里。Host 字段告诉服务器这个请求应该由哪个主机来处理

    2. User-Agent字段,属于请求字段。它使用一个 字符串来描述发起 HTTP 请求的客户端

    3. Date字段,通常在响应头。它表示HTTP报文创建时间

    4. Server字段,是响应字段。它告诉客户 端当前正在提供 Web 服务的软件名称和版本号

    5. Content-Length 是表示报文body的长度

  •  第十章:应该如何理解请求方法?
    • GET:获取资源,可以理解为读取或者下载数据

    • HEAD:获取资源的元信息

    • POST:向资源提交数据,相当于写入或上传数据

    • PUT:类似 POST

    • DELETE:删除资源

    • CONNECT:建立特殊的连接隧道

    • OPTIONS:列出可对资源实行的方法; 8. TRACE:追踪请求 - 响应的传输路径。

    • GET 和 HEAD 方法是“安全”的,因 为它们是“只读”操作

    • GET 和 HEAD 既是安全的也是幂等的,DELETE 可以多次删除同一个资源,效果都是“资源不存在”,所以 也是幂等的。PUT也是幂等的。

  • 第十一章:你能写出正确的网址吗?
    • URI 是用来唯一标记服务器上资源的一个字符串,通常也 称为 URL;

    • URI 通常由 scheme、host:port、path 和 query 四个部 分组成,有的可以省略;

    • scheme 叫“方案名”或者“协议名”,表示资源应该使 用哪种协议来访问;

    • “host:port”表示资源所在的主机名和端口号;

    • path 标记资源所在的位置;

    • query 表示对资源附加的额外要求;

    • 在 URI 里对“@&/”等特殊字符和汉字必须要做编码,否则服务器收到 HTTP 报文后会无法正确处理。

  •  第十二章:响应状态码该怎么用?
    1. 1××:提示信息,表示目前是协议处理的中间状态,还需 要后续的操作;
    2. 2××:成功,报文已经收到并被正确处理;

    3. 3××:重定向,资源位置发生变动,需要客户端重新发送请求;

    4. 4××:客户端错误,请求报文有误,服务器无法处理;

    5. 5××:服务器错误,服务器在处理请求时内部发生了错误。

  • 第十三章:HTTP有哪些特点?
    • HTTP 是灵活可扩展的,可以任意添加头字段实现任意功能;

    • HTTP 是可靠传输协议,基于 TCP/IP 协议“尽量”保证数据的送达;

    • HTTP 是应用层协议,比 FTP、SSH 等更通用功能更多,能够传输任意数据;

    • HTTP 使用了请求 - 应答模式,客户端主动发起请求,服务器被动回复请求;

    • HTTP 本质上是无状态的,每个请求都是互相独立、毫无关联的,协议不要求客户端或服务器记录请求相关的信息。

    • 如果要100%保证数据收发成功就不能使用HTTP或者TCP协议了,而是要使用各种消息中间件(MQ),如kafka、RabbitMQ等

  • 第十四章:HTTP有哪些优点?又有哪些缺点?
    • HTTP 最大的优点是简单、灵活和易于扩展;

    • HTTP 拥有成熟的软硬件环境,应用的非常广泛,是互联网的基础设施;

    • HTTP 是无状态的,可以轻松实现集群化,扩展性能,但有时也需要用 Cookie 技术来实

      现“有状态”;

    • HTTP 是明文传输,数据完全肉眼可见,能够方便地研究分析,但也容易被窃听;

    • HTTP 是不安全的,无法验证通信双方的身份,也不能判断报文是否被窜改;

    • HTTP 的性能不算差,但不完全适应现在的互联网,还有很大的提升空间。

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
cda备考学习学习笔记——基础知识篇(二)主要涉及了计算机科学与技术领域的基本概念和知识。 首先,它介绍了计算机网络的基础知识。网络是将多台计算机通过通信链路连接起来,使它们能够相互通信和共享资源的系统。笔记中详细介绍了网络的组成、拓扑结构和通信协议等重要内容。 其次,笔记还解释了计算机系统的基本组成。计算机系统由硬件和软件两部分组成,其中硬件包括中央处理器、存储器、输入输出设备等,而软件则分为系统软件和应用软件。笔记详细介绍了各种硬件和软件的功能和作用。 此外,笔记还对数据库管理系统进行了介绍。数据库管理系统是一种用于管理和组织数据的软件系统,它能够实现数据的存储、检索和更新等操作。笔记中详细介绍了数据库的概念、结构和操作等内容。 最后,笔记还包括了算法和数据结构的基础知识。算法是解决问题的一系列步骤和规则,而数据结构则是组织和存储数据的方式。笔记中介绍了常用的算法和数据结构,如排序算法、树和图等。 总之,通过学习CDA备考学习笔记中的基础知识篇(二),我们能够更好地理解计算机网络、计算机系统、数据库管理系统以及算法和数据结构等相关概念和知识。这些基础知识对于我们深入研究计算机科学与技术领域是非常重要的,也为我们日后的学习和工作奠定了坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值