http头参数

本文详细介绍了HTTP协议中的请求头和响应头字段,解释了常见的HTTP状态码及其含义,并探讨了浏览器缓存策略。此外,还对比了HTTP1.0与HTTP1.1的主要区别。

用于HTTP请求中的常用请求头字段
Accept:用于高速服务器,客户机支持的数据类型
Accept-Charset:用于告诉服务器,客户机采用的编码格式
Accept-Encoding:用于告诉服务器,客户机支持的数据压缩格式
Accept-Language:客户机的语言环境
Host:客户机通过这个头高速服务器,想访问的主机名
If-Modified-Since:客户机通过这个头告诉服务器,资源的缓存时间
Referer:客户机通过这个头告诉服务器,它是从哪个资源来访问服务器的(防盗链)
User-Agent:客户机通过这个头告诉服务器,客户机的软件环境
Cookie:客户机通过这个头可以向服务器带数据
Connection:处理完这次请求后是否断开连接还是继续保持连接
Date:当前时间值


HTTP响应
状态行:用于描述服务器对请求的处理结果。

状态码:100~199:表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程。
 200~299:表示成功接收请求并已完成整个处理过程。常用200
 300~399:为完成请求,客户需进一步细化请求。例如:请求的资源已经移动一个新地址、常用302(意味着你请求我,我让你去找别人),307和304(我不给你这个资源,自己拿缓存)
 400~499:客户端的请求有错误,常用404(意味着你请求的资源在web服务器中没有)403(服务器拒绝访问,权限不够)
 500~599:服务器端出现错误,常用500
多个响应头:响应头用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理等一会儿它回送的数据。
Location:这个头配合302状态码使用,用于告诉客户找谁。
Server:服务器通过这个头告诉浏览器服务器的类型。
Content-Encoding:服务器通过这个头告诉浏览器数据的压缩格式。
Content-Length:服务器通过这个头告诉浏览器回送数据的长度
Content-Type:服务器通过这个头告诉浏览器回送数据的类型
Last-Modified:告诉浏览器当前资源的最后缓存时间
Refresh:告诉浏览器隔多久刷新一次
Content-Disposition:告诉浏览器以下载方式打开数据
Transfer-Encoding:告诉浏览器数据的传送格式
ETag:缓存相关的头
········三种禁止浏览器缓存的头字段:
 Expires:告诉浏览器把回送的资源缓存多长时间 -1或0则是不缓存
 Cache-Control:no-cache
 Pragma:no-cache
服务器通过以上两个头,也就是控制浏览器不要缓存数据

实体内容:代表服务器向客户端回送的数据

 

l200(正常)
表示一切正常,返回的是正常请求结果。
l302/307(临时重定向)
指出被请求的文档已被临时移动到别处,此文档的新的URL在Location响应头中给出。
l304(未修改)
表示客户机缓存的版本是最新的,客户机应该继续使用它。
l403(禁止)
服务器理解客户端请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置所致。
l404(找不到)
服务器上不存在客户机所请求的资源。
l500(内部服务器错误)
服务器端的CGI、ASP、JSP等程序发生错误。

 

 

1.请按自己的理解简述HTTP 1.1与HTTP 1.0的区别。
2.请描述HTTP请求消息和HTTP响应消息的组成结构,并各举一例进行说明。
3.浏览器分别在哪些情况下使用GET方式和POST方式访问WEB服务器?如果浏览器传递给WEB服务器的参数内容超过1K,应该使用那种方式发送请求消息?
4.请描述200、302、304、404和500等响应状态码所表示的意义。

5.请列举三种禁止浏览器缓存的头字段,并写出相应的设置值。

 

解答:

1.HTTP1.0对于每个连接都的建立一次连接一次只能传送一个请求和响应,请求就会关闭,HTTP1.0没有Host字段;
而HTTP1.1在同一个连接中可以传送多个请求和响应,多个请求可以重叠和同时进行,HTTP1.1必须有Host字段。

2.请求消息结构:一个请求行、若干消息头、以及尸体内容,当中的一些消息头和实体内容都是可选的,消息头和实体内容之间要用空行隔开。
响应消息结构:一个状态行、若干消息头、以及尸体内容,当中的一些消息头和实体内容都是可选的,消息头和实体内容之间要用空行隔开。
两者的区别:就是请求消息有请求行,响应消息有状态行。
GET /mail/aa.html HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: zh-CN
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: localhost:8080
If-Modified-Since: Wed, 17 Oct 2012 09:35:13 GMT
If-None-Match: W/"62-1350466513174"
Connection: Keep-Alive

 

HTTP/1.1 304 Not Modified
Server: Apache-Coyote/1.1
ETag: W/"62-1350466513174"
Date: Wed, 17 Oct 2012 09:45:38 GMT

 

3.数据量不大,因为GET方式数据量限制1K,不带有保护数据的情况下使用GET方式访问WEB服务器;数据量大,而且带有需要保护的数据时使用POST方式访问WEB服务器。
如果浏览器传送服务器的数据量超过1K,应使用POST方式访问服务器,因为POST方式向服务器传送是数据时,会先把传送的数据打包发送到WEB服务器。

4.响应状态吗表示的意义:
200:表示成功,正常结果;
302:表示重定向,转到别的站点;
304:表示未修改;
404:表示找不到资源;
500:表示内部服务器错误;

5.Expires:告诉浏览器把回送的资源缓存多长时间 -1或0则是不缓存
 Cache-Control:no-cache
 Pragma:no-cache

<think>嗯,用户想了解HTTP GET请求参数用法。首先我需要明确GET请求的参数通常是在URL里,但请求里可能也有一些相关参数。不过用户可能混淆了GET请求的参数位置。根据引用[1],Spring Boot接收GET参数是在路径或者查询参数中,比如路径参数或者@RequestParam。引用[2]提到HttpServletRequest获取GET参数的五种方法,比如从请求对象中获取参数。 用户的问题可能涉及到GET请求的常见参数位置,比如查询字符串,而请求中的参数可能指的是其他信息,比如User-Agent或Accept。需要区分清楚。可能用户想了解的是GET请求的参数如何传递,包括URL中的查询参数和请求的其他字段。需要解释清楚两者的区别,并给出示例。另外,要确保引用的资料和例子正确,比如使用Spring Boot的例子和HttpServletRequest的方法。可能还要提到常见的请求参数如Content-Type在GET中的使用情况,虽然GET通常没有请求体,但请求参数还是有其他用途。需要组织好结构,分点说明,并生成相关问题帮助用户深入理解。</think>### HTTP GET请求参数详解 #### 一、GET请求参数位置 1. **URL路径参数** 通过`@PathVariable`注解接收参数,例如: ```java @GetMapping("/user/{id}") public String getUser(@PathVariable("id") String userId) { return "用户ID:" + userId; } ``` 2. **查询字符串参数** 使用`@RequestParam`注解接收URL中的键值对参数,例如: ```java @GetMapping("/search") public String search(@RequestParam("keyword") String keyword) { return "搜索关键词:" + keyword; } ``` 3. **通过HttpServletRequest对象获取** 可以直接从请求对象中提取所有参数: ```java @GetMapping("/data") public String getData(HttpServletRequest request) { String username = request.getParameter("username"); return "用户名:" + username; } ```[^2] --- #### 二、HTTP请求参数 虽然GET请求的参数通常位于URL中,但请求(Header)中可能包含以下**辅助性参数**: | 请求字段 | 作用描述 | 示例值 | |-------------------|----------------------------|-------------------------| | `User-Agent` | 客户端浏览器/设备信息 | `Mozilla/5.0 (Windows NT 10.0)` | | `Accept` | 声明客户端可接收的内容类型 | `application/json` | | `Accept-Language` | 客户端优先语言 | `zh-CN,en-US;q=0.9` | | `Authorization` | 身份验证凭证 | `Bearer xxxxxx` | --- #### 三、注意事项 1. **URL长度限制** GET请求的URL长度受浏览器限制(通常约2048字符),需避免传递大量参数[^1]。 2. **安全性** 参数明文显示在URL中,敏感数据应使用POST请求或HTTPS加密。 3. **幂等性** GET请求是**幂等操作**,重复请求不会改变服务器状态。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值