01.HTTP协议的概念和作用

HTTP协议详解

web交互的基本流程

由客户端(浏览器端)发送请求,服务端响应。
也就是客户端在浏览器的地址栏输入要请求服务器的资源的url(这就是请求),然后服务器把对应的资源发送给浏览器,这叫响应。
因为不同的浏览器输入的是相同的url地址,但是浏览器也是代码写的,不同的浏览器有不同的实现,为了规范,所以有了HTTP协议。规定了各个浏览器与服务器交互的数据的格式。在浏览器端请求的时候会发许多信息,HTTP协议规范了这些信息的格式。

HTTP的概念和介绍

HTTP:超文本传输协议
作用:规范了浏览器和服务器的数据交互
特点:简单快速(浏览器端向服务器请求服务的时候,只需要传送请求的方法和路径。请求的方法有:GET、HEAD、POST,每种方法规定了客户与服务器联系的类型不同,由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。)
灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
无连接:浏览器端知道服务器是谁,服务器不知道浏览器端是谁,服务端只要看到了请求,就响应请求,响应完了就断开连接。这样可以省时间。而且每次只处理一个请求。
无状态:HTTP协议是无状态的协议。无状态是指协议对于事务处理没有记忆能力,缺少记忆状态意味着如果后面要后续处理前面处理过的信息,必须重新处理。
HTTP1.1版本之后,可以支持可持续连接。

HTTP的交互流程:

HTTP的交互流程一般分为四个步骤(一次完整的请求):
步骤一: 客户端/浏览器端 和服务器建立连接
步骤二:客户端/浏览器端发送请求数据到服务器端
步骤三:服务器端接收到请求后,进行处理,然后将处理的结果响应客户端
步骤四:关闭客户端和服务器端的连接(HTTP1.1后不会立即关闭)

步骤而中发送请求数据中,请求数据是什么样呢?请求数据的格式是由HTTP协议规定好的

HTTP协议请求的格式

请求格式的结构
请求头:(里面写请求的方式,请求的地址,HTTP协议的版本)
请求行:(说明浏览器/客户端要使用的一些附加信息,放一些浏览器的版本)
空行:
请求数据:(GET方式没有,POST方式有)里面都是键值对的形式,左边的是标签的name属性

一个请求响应的基本例子

(1)客户端(大部分情况下是浏览器)对Web服务器发出HTTP请求。
(2)HTTP服务器收到HTTP请求,将请求转给Web容器处理,Web容器会剖析HTTP请求的内容,创建各种对象(如HttpServletRequest、HttpServletResponse、HttpSession等)。
(3)Web容器由请求的URL决定要使用那个Servlet来处理请求(事先由开发人员指定好的)
(4)Servlet根据请求对象(HttpServletRequest)的信息决定如何处理,通过响应对象(HttpServletResponse)来创建响应。
(5)Web容器与HTTP服务器沟通,Web服务器将响应转换为HTTP响应并传回客户端。

以上是了解Web容器如何管理Servlet/JSP的一个例子。不了解Web容器行为容易产生问题,举例来说,Servlet是执行在Web容器之中,Web容器由服务器上的JVM启动,JVM本身就是服务器上的一个可执行程序。当一个请求到来的时候,Web容器会为每个请求自动分配一个线程(Thread),如果有多次请求进来,就只是启动了多个线程,这样大大减轻了性能的负担,但是也必须要保证线程安全。避免发生数据错乱。

Servlet与JSP的关系

实际上,JSP会被WEB容器编译为Servlet的.java源文件,编译为.class的字节码文件,然后加载在容器中,所以Servlet是最底层,也是最基础的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值