【JavaWeb】Day25.Web入门——HTTP协议(一)

HTTP协议——概述

1.介绍

HTTP:Hyper Text Transfer Protocol(超文本传输协议),规定了浏览器与服务器之间数据传输的规则。

  • http是互联网上应用最为广泛的一种网络协议
  • http协议要求:浏览器在向服务器发送请求数据时,或是服务器在向浏览器发送响应数据时,都必须按照固定的格式进行数据传输

如果想知道http协议的数据传输格式有哪些,可以打开浏览器,点击`F12`打开开发者工具,点击`Network`来查看。

浏览器向服务器进行请求时:  服务器按照固定的格式进行解析

服务器向浏览器进行响应时:浏览器按照固定的格式进行解析

 所以,学习HTTP主要就是学习请求和响应数据的具体格式内容。

2.特点

HTTP协议的特点:

  • 基于TCP协议:       TCP是一种面向连接的(建立连接之前是需要经过三次握手)、可靠的、基于字节流的传输层通信协议,在数据传输方面更安全
  • 基于请求-响应模型:         一次请求对应一次响应(先请求后响应),请求和响应是一一对应关系,没有请求,就没有响应

  • HTTP协议是无状态协议:       对于数据没有记忆能力。每次请求-响应都是独立的。无状态指的是客户端发送HTTP请求给服务端之后,服务端根据请求响应数据,响应完后,不会记录任何信息。缺点:  多次请求间不能共享数据;优点:  速度快

 HTTP-请求协议

浏览器和服务器是按照HTTP协议进行数据通信的。

HTTP协议又分为:请求协议和响应协议

  •   请求协议:浏览器将数据以请求格式发送到服务器

  - 包括:**请求行**、**请求头** 、**请求体**

  • 响应协议:服务器将数据以响应格式返回给浏览器

  - 包括:**响应行** 、**响应头** 、**响应体**

在HTTP1.1版本中,浏览器访问服务器的两种方式:

1.GET方式的请求协议

* 请求行 :HTTP请求中的第一行数据。由:`请求方式`、`资源路径`、`协议/版本`组成(之间使用空格分隔)

    * 请求方式:GET  

    * 资源路径:/brand/findAll?name=OPPO&status=1

          * 请求路径:/brand/findAll

          * 请求参数:name=OPPO&status=1

               * 请求参数是以key=value形式出现

               * 多个请求参数之间使用`&`连接

         * 请求路径和请求参数之间使用`?`连接      

     * 协议/版本:HTTP/1.1  

* 请求头 :第二行开始,上图黄色部分内容就是请求头。格式为key: value形式

常见的HTTP请求头有:

      服务端可以根据请求头中的内容来获取客户端的相关信息,有了这些信息服务端就可以处理不同的业务需求。

比如:

       不同浏览器解析HTML和CSS标签的结果会有不一致,所以就会导致相同的代码在不同的浏览器会出现不同的效果

        服务端根据客户端请求头中的数据获取到客户端的浏览器类型,就可以根据不同的浏览器设置不同的代码来达到一致的效果(这就是我们常说的浏览器兼容问题)

        请求体 :存储请求参数( GET请求的请求参数在请求行中,故不需要设置请求体)

 2.POST方式的请求协议

  • 请求行(以上图中红色部分):包含请求方式、资源路径、协议/版本

           - 请求方式:POST

           - 资源路径:/brand

           - 协议/版本:HTTP/1.1

  • 请求头(以上图中黄色部分)  
  • 请求体(以上图中绿色部分) :存储请求参数
  •   请求体和请求头之间是有一个空行隔开(作用:用于标记请求头结束)

1.请求方式GET: 请求参数在请求行中,没有请求,如:/brand/findAllname=OPPO&status=1。GET请求大小是有限制的。

2.请求方式-POST: 请求参数在请求体中,POST请求大小是没有限制的。

3.GET请求:安全性低。原因:请求参数暴露在浏览器地址栏中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/589163.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为数通方向HCIP-DataCom H12-821题库(多选题:261-280)

第261题 VRRP可以结合以下哪些机制或技术来监视上行链路的连通性? A、IP-Link B、BFD C、NQA D、接口Track 【正确答案】BCD 【答案解析】 第262题 以下关干RSTP根保护的说法正确的是? A、根端口上开启根保护功能会生效 B、开启根保护的端口再收到优先级更高的RSTBPDU之后如…

经典文献阅读之--i-Octree(用于最近邻搜索的快速、轻量级和动态的八叉树)

0. 简介 在众多机器人应用中,通过最近邻搜索建立新采集点与历史累积数据(即地图)之间的对应关系至关重要。然而,静态树数据结构不足以实时处理大型且动态增长的地图。为了解决这个问题,我们在文中《i-Octree: A Fast,…

HarmonyOS NEXT应用开发之MVVM模式

应用通过状态去渲染更新UI是程序设计中相对复杂,但又十分重要的,往往决定了应用程序的性能。程序的状态数据通常包含了数组、对象,或者是嵌套对象组合而成。在这些情况下,ArkUI采取MVVM Model View ViewModel模式,其…

使用deepspeed小记

1. 减少显存占用的历程忠告 医学图像经常很大,所以训练模型有时候会有难度,但是现在找到了很多减少显存的方法。 不知道为什么,使用transformers的trainer库确确实实会减少显存的占用,即使没有使用deepspeed,占用的显…

nginx与tomcat的区别?

关于nginx和tomcat的概念 网上有很多关于nginx和tomcat是什么东西的定义,我总结了一下: tomcat是Web服务器、HTTP服务器、应用服务器、Servlet容器、web容器。 Nginx是Web服务器、HTTP服务器、正向/反向代理服务器,。 这里有两个概念是交叉的&#xff…

网络编程套接字应用分享【Linux C/C++ 】【UDP应用 | TCP应用 | TCP线程池小项目】

目录 前提知识 1. 理解源ip,目的ip和Macip 2. 端口号 3. 初识TCP,UDP协议 4. 网络字节序 5. socket 编程 sockaddr类型 一,基于udp协议编程 1. socket——创建套接字 2. bind——将套接字强绑定 3. recvfrom——接受数据 4. s…

深入探索:主流低代码开发平台的应用场景及开发流程

前言: 2014年,全球权威资讯机构 Forrester 首次在报告中引入了低代码的概念,放眼彼时的中国市场,低代码这一名词还鲜为人知。 直到近几年,随着国家积极推动数字经济,大力扶持企业数字化发展《加强数字化发…

34.Python从入门到精通—Python3 正则表达式检索和替换

34.从入门到精通:Python3 正则表达式检索和替换 repl 参数是一个函数 正则表达式对象 正则表达式修饰符 - 可选标志 正则表达式模式* 正则表达式实例 检索和替换repl 参数是一个函数正则表达式对象正则表达式修饰符 - 可选标志正则表达式模式*正则表达式实例 检索和…

Java中的可变字符串

Java中的可变字符串 一、什么是可变字符串二、可变字符串的使用场景以及使用步骤1.新建一个可变字符串2.可变字符串的一系列方法 一、什么是可变字符串 可变字符串是Java.lang包下的 在我们学习到JDBC的时候需要将原有的sql语句根据不同的差异添加一段新的关键字或者单词&…

Python 代码混淆工具概述

在保护Python代码安全方面,有多种混淆工具可供选择,包括 Cython, Nuitka, Pyminifier 和 IPA guard。本文将介绍这些工具的特点和适用情况,以及在实际应用中的注意事项。 📝 摘要 本文探讨了几种常见的 Python 代码混淆工具&am…

九州金榜家庭教育:关注孩子心理健康,增强亲子沟通

家庭教育现在越来越受重视,尤其孩子心理健康,当下社会,孩子心理健康问题频出,很多地方不时传出孩子轻生的新闻,这就是在教育过程中,沟通出现了严重问题,随着心理变化产生,孩子这时候…

MySQL进阶-----SQL提示与覆盖索引

目录 前言 一、SQL提示 1.数据准备 2. SQL的自我选择 3.SQL提示 二、覆盖索引 前言 MySQL进阶篇的索引部分基本上要结束了,这里就剩下SQL提示、覆盖索引、前缀索引以及单例联合索引的内容。那本期的话我们就先讲解SQL提示和覆盖索引先,剩下的内容就…