计算机网络笔记——应用层——4.HTTP协议


JAVA后端开发知识总结(持续更新…)


本人计算机网络笔记——应用层总目录

计算机网络笔记——应用层——1.概述及Socket
计算机网络笔记——应用层——2.域名解析系统DNS(UDP协议)
计算机网络笔记——应用层——3.文件传送协议FTP(TCP协议)及电子邮件(TCP协议)
计算机网络笔记——应用层——4.万维网WWW及HTTP协议


参考文档

B站:《王道考研 计算机网络》
B站:中科大郑烇老师全套《计算机网络自顶向下方法》课程
《计算机网络第6版——谢希仁》



五、万维网WWW及HTTP协议

5.1 万维网概述

  万维网WWW并非某种特殊的计算机网络,万维网是一个大规模的、联机式的信息储藏所,英文简称为Web。万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点(也就是所谓的“链接到另一个站点”),从而主动地按需获取丰富的信息和资源。

  万维网是一个分布式的超媒体(hypermedia)系统,它是超文本(hypertext)系统的扩充。所谓超文本是指包含指向其它文档的链接的文本(text)。

  万维网以客户服务器方式工作。上面所说的浏览器就是在用户主机上的万维网客户程序;万维网文档所驻留的主机则运行服务器程序,因此这台主机也称为万维网服务器。客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。在一个客户程序主窗口上显示出的万维网文档称为页面

  • Web页由一些对象组成,对象可以是HTML文件、JPEG图像、Java小程序、声音剪辑文件等。

  • 万维网使用 统一资源定位符URL 来标志万维网上的各种文档,并使每一个文档在整个互联网的范围内具有唯一的标识符URL。

  • HTTP超文本传送协议 来实现万维网上的各种链接,HTTP是一个应用层协议,它 使用TCP连接 进行可靠的传送。

  • 万维网使用 超文本标记语言HTML,使得万维网页面的设计者可以很方便地用链接从本页面的某处链接到互联网上的任何一个万维网页面。

5.2 统一资源定位符URL

在这里插入图片描述

  URL相当于一个文件名在网络范围的扩展,因此,URL是与互联网相连的机器上的任何可访问对象的一个指针。由于访问不同对象所使用的协议不同,所以URL还指出读取某个对象时所使用的协议。

  现在最常用的协议就是HTTP,其次是FTP。主机就是指该主机在互联网上的域名。再后面是第三和第四部分,有时可省略。

5.2.1 使用HTTP的URL

  HTTP的URL的一般形式是:http:// <主机>:<端口>/<路径>

  HTTP的默认端口号是80,通常可省略。若再省略文件的路径项,则URL就指到互联网上的 对应主页

5.3 超文本传送协议HTTP——TCP

  HTTP协议定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。从层次的角度看,HTTP是面向事务的应用层协议,它是万维网上能够可靠地交换文件的重要基础。

5.3.1 传送的基本流程

  1. 每个万维网网点都有一个服务器进程,它 不断地监听TCP的端口80,以便发现是否有浏览器向它发出连接建立请求。
  2. 一旦监听到连接建立请求并 建立了TCP连接之后,浏览器就向万维网服务器发出浏览某个页面的请求,服务器接着就返回所请求的页面作为响应。
  3. 最后,TCP连接被释放。

在这里插入图片描述

5.3.2 HTTP协议的特点——无状态 + 无连接

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

5.3.3 连接方式

  非持久连接(HTTP/1.0)在 TCP的第三次握手时发生,将HTTP请求作为第三次握手的数据部分发给服务器,服务器收到请求之后将HTTP相应报文传输给客户。耗时就是RTT * 2 +文档传输时间。缺点就是这样如果再想传输,那么就需要重新建立TCP连接从头开始。

  持久连接(HTTP/1.1)和非持久连接类似,都是在 第三次握手时发生,将HTTP请求作为第三次握手的数据部分发给服务器,服务器收到请求之后将HTTP相应报文传输给客户。但是持久连接再需要请求资源时就不需要建立新的TCP连接了。

在这里插入图片描述在这里插入图片描述

持久连接的两种方式——非流水线和流水线

  • 非流水线就是发一个,确认一个,才能再发下一个;

  • 流水线是客户在收到HTTP的响应报文之前就能够接着发送新的请求报文。

5.3.4 HTTP报文结构

  HTTP报文是面向文本的,因此在报文中的每个字段都是一些ASCII码。请求报文与响应报文对比如下图所示:
在这里插入图片描述
请求报文的具体形式:
在这里插入图片描述

开始行:用于区别请求报文和响应报文。

  • 请求报文的方法:就是对所请求的对象进行什么操作,如获取/删除/写入(GET / DELETE / POST)等等;

  • URL就是之前说的资源标识符;

  • 版本是指使用的是什么版本的HTTP协议(比如:HTTP/1.1);

  • CRLF相当于程序里面的 ,标识一行的结束;

  • 在整个首部行结束时,为了区别首部行和实体主体还会有一行单独的CRLF。

5.3.5 Cookie简述

在这里插入图片描述
在这里插入图片描述

5.4 超文本标记语言HTML——前端知识

  超文本标记语言HTML就是一种制作万维网页面的标准语言,它消除了不同计算机之间信息交流的障碍。仅当HTML文档是以.html 或.htm为后缀时,浏览器才对这样的HTML文档的各种标签进行解释。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值