首页 > 编程语言 >Javaweb01-HTTP协议

Javaweb01-HTTP协议

时间:2024-06-09 22:01:41浏览次数:29  
标签:协议 HTTP 请求 Content 响应 服务器 Javaweb01 客户端

HTTP协议

1.HTTP协议概述

  • 定义与作用

HTTP是超文本传输协议,用于定义服务端和客户端之间交换数据的过程和数据本身的的格式,同时HTTP是一种请求/响应式的协议,是一种应用层的协议

  • 优点

支持客户端和服务器模式

简单快速,通过Http请求和Http响应加快通信

允许传输任意类型的数据,由Context-Type加以标记

无状态。HTTP协议处理事务是没有记忆能力的

  • HTTP的版本

**HTTP1.0:**建立连接,发送请求信息,响应信息,关闭连接(每次只能处理一个请求)

**HTTP1.1:**它支持持久连接,也就是说在一个TCP连接上可以传送多个HTTP请求和响应,并且在发送下个请求时,无需等待上次请求的返回结果,服务器会按照客户端发送的请求先后顺序依次返回响应结果

2.HTTP请求消息

  • **组成:**请求消息包括请求行,请求头和请求消息体
  • 请求行:GET /index.html HTTP/1.1
1.组成:请求方式,资源路径(绝对路径/相对路径),HTTP版本
    
2.常见请求方式
GET:
GET请求获取请求行的URI所标识的资源
GET传送的数据量有限,不超过2KB;
GET的请求参数会在资源路径后面添加 ?参数=值&参数=值... 来表示,会在请求行显示
    
POST:
POST请求向指定资源提交数据,请求服务器进行处理(如提交表单或者上传文件)
POST请求的请求参数会放在请求消息体中,通过Content-Type指定类型,默认为application/x-www-form-urlencoded,Content-Length字段指定实体的长度
POST请求传输数据没有大小限制
  • 请求头

1.Accept:用于指定客户端可以处理的类型

Accept: text/html,表明客户端希望接受HTML文本。
Accept: image/gif,表明客户端希望接受GIF图像格式的资源。
Accept: image/*,表明客户端可以接受所有image格式的子类型。
Accept: */*,表明客户端可以接受所有格式的内容。

2.Accept-Encoding:用于指定客户端可以解码的类型(实体内容压缩方式)

Accept-Encoding: gzip,compress
//与响应头中的Content-Type相对应

3.Host(HTTP1.1必须有):指定主机名和端口号

Host:主机名:端口号

4.If-Modified-Since

If-Modified-Since的值为GMT格式的时间。
If-Modified-Since请求头被视作一个请求条件,只有服务器中文档的修改时间比If-Modified-Since请求头指定的时间新,服务器才会返回文档内容。否则,服务器将返回一个304(Not Modified)状态码来表示浏览器缓存的文档是最新的,而不向浏览器返回文档内容,这时,浏览器仍然使用以前缓存的文档。

5.Referer

当单击这个超链接向服务器发送GET请求时,浏览器会在发送的请求消息中包含Referer头字段,Referer头字段常被网站管理人员用来追踪网站的访问者是如何导航进入网站的。同时Referer头字段还可以用于网站的防盗链。
//使用URL访问时不会产生Referer字段,点击超链接时候会产生

3.HTTP响应消息

  • **组成:**响应状态行,HTTP响应头,实体内容

  • HTTP响应状态行HTTP/1.1 200 OK

1.组成:协议版本号,状态码,状态码描述信息

2.常见状态码

状态码说明
200表示服务器成功处理了客户端的请求。客户端的请求成功,响应消息返回正常的请求结果
302表示请求的资源临时从不同的URI响应请求,但请求者应继续使用原有位置来进行以后的请求。例如,在请求重定向中,临时URI应该是响应的Location头字段所指向的资源 (当前消息处理不了需要通过Location中的资源处理)
304如果客户端有缓存的文档,它会在发送的请求消息中附加一个If-Modified-Since请求头,表示只有请求的文档在If-Modified-Since指定的时间之后发生过更改,服务器才需要返回新文档。状态码304表示客户端缓存的版本是最新的,客户端应该继续使用它。否则,服务器将使用状态码200返回所请求的文档
404表示服务器找不到请求的资源。
500表示服务器发生错误,无法处理客户端的请求。
  • HTTP响应头

1.Location

Location头字段用于通知客户端获取请求文档的新地址,其值为一个使用绝对路径的URL地址。
Location头字段和大多数3xx状态码配合使用,以便通知客户端自动重新连接到新的地址请求文
HTTP消息头中不能同时出现Location和Content-Type这两个头字段。

2.Server

Server头字段用于指定服务器软件产品的名称

3.Refresh: Refresh:3;url=http://www.baidu.com

Refresh头字段用于告诉浏览器自动刷新页面的时间,它的值是一个以秒为单位的时间数
在Refresh头字段的时间值后面还可以增加一个URL参数,时间值与URL之间用分号(;)分隔,用于告诉浏览器在指定的时间值后跳转到其他网页。

4.Content-Disposition

Content-Disposition指定了接收程序处理数据内容的方式,有inline和attachment两种标准方式,inline表示直接处理,而attachment则要求用户干预并控制接收程序处理数据内容的方式。

而在HTTP应用中,只有attachment是Content-Disposition的标准方式。attachment后面还可以指定filename参数。filename参数值是服务器建议浏览器保存实体内容的文件名称。

在设置Content-Disposition之前,一定要设置Content-Type头字段

5.Content-Encoding:指定响应的压缩格式

Content-Encoding:gizp,compress

6.Content-Type:返回响应的浏览器可识别格式和编码方式

Content-Type:“text/html;charset=utf-8”

标签:协议,HTTP,请求,Content,响应,服务器,Javaweb01,客户端
From: https://blog.csdn.net/XYX_888/article/details/139560239

相关文章

  • HTTP与HTTPS的区别
    HTTP和HTTPS的主要区别体现在以下几个方面:1.安全性HTTP协议以明文方式发送内容,不提供任何方式的数据加密。这意味着如果攻击者截取了Web浏览器和网站服务器之间的传输报文,他们可以直接读懂其中的信息。相比之下,HTTPS协议则通过SSL/TLS协议进行加密传输,这种加密方式可以保护数据......
  • 【JavaWeb入门】了解HTTP
    HTTP协议简介超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wi......
  • 通过接口拿到代理,返回代理列表(只有http,无https)
    defget_proxies_list(num):res=requests.get(url=f"http://api.89ip.cn/tqdl.html?api=1&num={num*2}&port=&address=&isp=").textip_list=re_method(res,"<br>(.*?)<br>")proxies_list=[]foriin......
  • Could not find artifact com.mysql:mysql-connector-j:pom:8.0.36 in central (https
    遇到修改依赖项的MySQL版本结果说找不到依赖项解决方法确保MySQL版本正确降低依赖项的MySQL版本,修改后更新即可以我的MySQL版本举例,可以降低MySQL版本到依赖项支持的版本<dependency><groupId>com.mysql</groupId><artifactId>m......
  • 项目:基于httplib/消息队列负载均衡式在线OJ
    文章目录写在前面关于组件开源仓库和项目上线其他文档说明项目亮点使用技术和环境项目宏观结构模块实现compiler模块runner模块compile_run模块compile_server模块基于MVC结构的OJ服务什么是MVC?用户请求服务路由功能Model模块view模块Control模块写在前面关于组件......
  • HTTP客户端框架之Retrofit
    目录1HTTP客户端框架Retrofit1.1引言1.2简介1.3简单使用1.3.1引入依赖1.3.2定义http接口1.3.3注入使用1.4HTTP请求相关注解1.5配置项1.5.1配置讲解1.5.2配置示例1.6高级功能1.6.1自定义注入OkHttpClient1.6.2注解式拦截器1.6.2.1继承BasePathMatchInterceptor编写......
  • 什么是协议?| 网络协议定义
    什么是网络协议?在网络中,协议是一套用于格式化和处理数据的规则。网络协议就像计算机的一种共同语言。一个网络中的计算机可能会使用截然不同的软件和硬件,然而,协议的使用使它们能够相互通信。标准化协议就像计算机可以使用的共同语言,类似于来自世界不同地区的两个人可能不理解对......
  • 【漏洞复现】多客圈子论坛系统 httpGet 任意文件读取漏洞
    0x01产品简介多客圈子论坛系统是一种面向特定人群或特定话题的社交网络,它提供了用户之间交流、分享、讨论的平台。在这个系统中,用户可以创建、加入不同的圈子,圈子可以是基于兴趣、地域、职业等不同主题的。用户可以在圈子中发帖、评论、点赞等互动。社交圈子论坛系统除了......
  • HTTP 请求中 Token 参数带引号导致后台无法识别问题
    HTTP请求中Token参数带引号导致后台无法识别问题在使用HttpClient对check_login接口进行测试时,意外地在请求头的token部分添加了引号”s4PrKYfu”,导致后台无法正确识别该参数。错误的请求如下所示:POST{{server_host}}/user/check_logintoken:"s4PrKYfu"Content-Typ......
  • Nginx 配置防护 缓慢的 HTTP拒绝服务攻击+点击劫持:X-Frame-Options未配置
    一安全团队检测网站1 检测到目标主机可能存在缓慢的HTTP拒绝服务攻击缓慢的HTTP拒绝服务攻击是一种专门针对于Web的应用层拒绝服务攻击,攻击者操纵网络,对目标Web服务器进行海量HTTP请求攻击,直到服务器带宽被打满,造成了拒绝服务。慢速HTTP拒绝服务攻击经过不断的演变和发展......