web开发前置知识——HTTP协议

web,严格地说是WWW(world wide web)即全球广域网,也称为万维网,直观的说就是网页(前端)或者说网站(后端),是人类自1946年进入信息时代以来应用最广泛的一项信息服务,因而学会web开发是很有意义的。

首先第一个问题,什么是web?web是基于HTTP的网络应用程序,它肯定是程序,而且是应用层的程序,不是内核程序也不是系统程序,而且它不是一个单机程序,它是分布式的,这意味着它一定会基于某个网络协议,我们知道设计并编写一个网络程序,第一步就是要设计协议,之后在协议这样一个分布式架构的基础上添加各部分的功能,web也是这样的,它是基于HTTP这样一个协议的,因而想要弄清楚什么是web,关键是弄清楚什么HTTP?

HTTP(Hyper Text Transfer Protocol,超文本传输协议),这个超文本指的是HTML文本,HTTP协议的分布式架构是B/S架构,S指的是web服务器,比如tomcat,它的作用是负责与浏览器和其上的CGI通信,CGI作为一个API集合负责后端与前端的交互(其实后端是先与CGI交互,继而与web服务器交互,继而与浏览器交互,最终和前端界面进行交互),B指的是浏览器,浏览器的作用是负责与web服务器和其上的前端界面通信,浏览器的前端严格来说并不是程序,它是一种基于浏览器的脚本程序,以下图表展示了HTTP协议通信流程:

注意HTTP协议的几点特点(摘自菜鸟):

  • HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
  • HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。
  • HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

另外,HTTP协议是基于TCP协议的,TCP协议基于IP协议即Internet。

通过上文对HTTP协议的认识,我们可以看出,要开发一个web出来,需要开发三部分的内容:

①前端:浏览器界面的设计与实现,这需要学习HTML(布局)、CSS(样式)、JavaScript(动态)、vue(前端框架)、AJAX(异步的JS和XML);

②后端:servlet,servlet是CGI,是后端业务逻辑程序与web服务器通信的接口,后续还会学习基于servlet的后端框架;

③数据库:SQL语言,以MySQL为准进行学习(后端程序通过JDBC与数据库相连)。

以上内容简述了HTTP的概念和特点,理解HTTP的概念即B/S体系结构是至关重要的,所有web程序都是基于这样的架构。理解下面这个问题至关重要:“一个web程序是基于HTTP的”这句话中的“基于”是什么意思?

“基于”的意思是我们得有一个浏览器和服务器,二者做了什么事情呢?两件事情,一是也是最基本的就是底层的通信即HTTP协议包的封装和解析,二是与上层的web程序进行交互,服务器通过servlet与上层的Java程序交互,浏览器将解析出的HTML文档渲染到界面上或从界面上获取用户输入。

以下是有关HTTP的一些具体内容(在浏览器界面键入F12可打开该页面的浏览器后台,里面可以看到有关该页面的全部信息,在network一栏可以看到该页面的HTTP信息,注意,一个页面一旦传过来,连接一般就断开了,就不会有网络流量了,因而你想看关于这个页面的HTTP信息,可以在打开后台以后刷新该页面):

①HTTP请求的格式如下:

请求行:请求类型 URI(URL端口号后面的所有内容) 协议版本号

请求头:key: value(冒号后面有一个空格)

请求空行

请求体:GET类型是没有请求体的,它的输入在请求行的URI中

②HTTP响应的格式如下:

状态行:协议版本号 状态码 状态说明

响应头:同上

响应空行

响应体:HTML文档

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值