Servlet入门(一)HTTP协议

版权声明:程序猴jwang版权所有 https://blog.csdn.net/qq_21046965/article/details/83904407

前言

       本章将和JQuery同步,开启新的篇章,学习Servlet的相关知识!

方法

在讲解之前,首先大家回顾一下MVC架构的内容以及层次关系:

  • 显示层(JSP、HTML、CSS、JS等):网页页面,用户直接访问
  • 控制层(JAVA、SERVLET):用来处理显示层传入的请求
  • 业务层(JAVA):实现具体业务,供控制层调用
  • 数据访问层(JAVA):直接与数据库交互,供业务层调用

业务层和数据访问层的相关知识已经在JAVA串烧(二)SMS编写之后台给大家做了细致的讲解了!那么显示层与控制层就需要用到Servlet的相关知识了。

1.http协议的基本理解

我们知道,我们的web项目都是B/S架构,即浏览器/服务器模式。也就是说,用户通过浏览器向服务器发送请求,服务器将结果响应给用户!那么这就是web交互的基本流程。

常见的例子就是我们打开浏览器,输入www.baidu.com的时候,就是一次web交互的基本流程,其结果就是返回给用户百度的首页!

由于客户端也就是浏览器的版本较多,服务器也是参差不齐,那么如何规范它们数据交互的格式呢?http协议应运而生!其用于规范web交互的基本规则!

百度上给出的http协议的定义如下:

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。

2.http的交互流程

  • 客户端与服务器端建立连接
  • 客户端发送请求数据到服务器端
  • 服务器端接收到请求后进行处理,将处理结果相应给客户端
  • 关闭客户端和服务器端的连接(HTTP1.1不会立刻关闭

3.http协议的请求格式

  • 请求头:请求的方式(get、post等)、地址和HTTP协议版本
  • 请求行:消息报头,一般用来说明客户端要使用的附加信息
  • 空行:空行是必须的,位于请求行和请求数据之间
  • 请求数据:非必须

实例:CSDN登录

我们知道,CSDN的登录相当于完整的http交互流程,使用谷歌浏览器,打开f12观察请求格式(这一块的内容我会单独拉一个章节)

点击Network即网络选项卡,观察点击登录按钮的请求情况!

我们以其中的一个请求为例进行说明!

该处可以理解为请求头,包含了url、请求方式、状态码等相关信息

该处可以理解为请求行,包含了客户端的附加信息,用来告知服务器端

 

该处即请求的数据

这里面我们发现请求的方式有get和post等多种请求方式,最重要的就是探究post请求和get请求的区别

get请求:

  • 请求数据会以?的形式隔开拼接在请求头中,不安全,没有请求实体部分
  • http协议虽然没有规定请求数据的大小,但是浏览器对url的长度是有限制的,所以get请求不能携带大量的数据

post请求:

  • 请求数据在请求实体中进行发送,在url中看不到具体的请求数据,安全。适合数据量大的数据发送。

4.http协议的响应格式

  • 响应行:HTTP协议版本、状态码、状态消息
  • 响应头:消息报头,服务端要使用的附加信息
  • 空行:空行是必须的,位于响应头和响应实体之间
  • 响应实体:服务器返回给浏览器的相关信息

该处可以理解为响应行,包含了相关信息!

该处为响应头,包含了服务器端的相关信息

 

该处为响应实体,包含了服务器端返回给客户端的相关信息。

 5.http协议的状态码

相信大家发现了,请求的时候有一个状态码是200,它意味着我们的请求是成功的!常见的状态码如下:

你不要不以为然,这些状态码将伴随你的一生!!! 

猜你喜欢

转载自blog.csdn.net/qq_21046965/article/details/83904407
今日推荐