Http的Header里面包含哪些字段,每个字段有哪些含义?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Http的Header里面包含哪些字段,每个字段有哪些含义?相关的知识,希望对你有一定的参考价值。

参考技术A HTTP报文中的Header可以分为请求中的Header和响应中的Header

常见Header详解:

Header中”q”值的含义:优先级。

没有q值的优先级默认为1。

q值一样的,范围小的优先级高。

格式:分号。

Accept:

客户端可以接受的Body格式

application/json ——JSON格式

text/plain——纯文本格式

text/html——HTML文本

*/*——所有格式

逗号隔开,有顺序。

分号前是主类型,分号后是子类型。

如果没有Accept请求头,相当于*/*

Accept-Encoding :

Content-Encoding:

Accept-Encoding指定浏览器可以支持的web服务器返回内容压缩编码类型。

服务器会通过Accept-Encoding得到客户端支持的压缩方式,如果服务器和浏览器同时支持某种压缩方式,服务器就会添加一种Content-Encoding,来进行压缩。

如果服务器不支持客户端Accept-Encoding中的任何一个压缩方式,则会返回406错误。

如果请求头中没有Accept-Encoding这个头,则会默认客户端支持任何方式。

Accept-Language:

浏览器可接受的自然语言的类型。

如果没有Accept-Language这个请求头,服务器默认客户端支持所有自然语言。

例如:zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4

User-Agent:

主要用于统计和追踪信息,用处不大。可以包含很多信息。

User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36

Content-Type:

表示请求或响应体的格式。

Connection:

设置HTTP连接的持久化,通常都是Keep-Alive。

Connection: close 表示在响应结束后,结束连接。

WWW-Authenticate:

WWW-Authenticate响应头必须包含在401授权错误中,表示通过什么方式进行身份验证。

例如:WWW-Authenticate: BASIC realm="application"

如果没有ACCEPT请求头?

相当于*/*

任何格式都接收

如果请求头中没有ACCEPT-ENCODING?

默认客户端支持任何方式

如果没有ACCEPT-LANGUAGE这个请求头?

服务器默认客户端支持所有自然语言。

POSTMAN测试正常,前端页面测试不正常??

POSTMAN

JMETER

CHROME

在JAVA中取得请求头?

取得HttpServletRequest对象

public String getHeader(String name);

public Enumeration getHeaders(String name);

public Enumeration getHeaderNames();

在JAVA中添加响应头?

取得HttpServletResponse对象

public void setHeader(String name, String value);——会覆盖

public void addHeader(String name, String value);——添加多个值

如何用JAVA更改请求头?

百度

ptteng.github.io/PPT/PPT-java/java-task2-header.html

SQL怎么从大表里面 查询包含小表的内容?

表1里面有很多数据, 表2里面假如有10条记录, 怎么从表1里面查到包含表2所包含的信息?
表1
A B C D ……………………后面有很多列
1 2 3 4
1 3 1 3
4 2 4 3
8 5 4 6

表2
X
5
4
3
类似这样的,两个表,怎么从表1中查询包含表二 5.或者4或者.3 的内容

--一个方案可才用IN关键字(针对单个字段信息是否包含)
SELECT * FROM FROM 表1 WHERE 字段名 in(SELECT 字段名 FROM 表2)
--第二个方案采用inner join 连接(可多个字段同时一样)
SELECT *
FROM 表1
INNER JOIN 表2 on 表1.字段A=表2.字段A and 表1.字段B=表2.字段B
--(上面的语句的意思是:查询出表1中字段A和字段B内容在表2都存在的数据)

如有什么问题可以追问,谢谢。
--补充回答
SELECT *
FROM 表1
INNER JOIN 表2 on 表1.A=表2.X or 表1.B=表2.X or 表1.C=表2.X or 表1.D=表2.X
或者
SELECT *
FROM 表1
where A in(SELECT X FROM 表2)
OR B in(SELECT X FROM 表2)
OR C in(SELECT X FROM 表2)
OR D in(SELECT X FROM 表2)追问

表1中 ,不止abcd 后面有很多,表2中,只有一列。

追答

你可以继续新增OR的条件。

如果不限制在一个语句内可以用下面语句写成查询函数效率会高很多(如果不是字符类型请转化为字符类型)

参考技术A --表的字段名称
select name from syscolumns where id=object_id( '表名 ')
--表的字段数
select count(name) from syscolumns where id=object_id( '表名 ')
最好改成:object_id(N '表名 ')
这样只是规范一些,一般不会出错
select name from syscolumns where id=object_id(N '表名 ')--列名
select name from sysobjects where xtype= 'U '--表名
select name from sysobjects where xtype= 'P '--存储过程
参考技术B select * from 表1
from A in (select x from 表2)
or B in (select x from 表2)
or C in (select x from 表2)
or D in (select x from 表2)
如果是只有表1中A列与表2中X列比较则不需要后面的3个or
如果表2的X是唯一键,也可改成join
select 表1.* from 表1 join 表2 on 表1.A=表2.X or B=X or C=x or D=x
有多少列要比较就or多个等于比较

以上是关于Http的Header里面包含哪些字段,每个字段有哪些含义?的主要内容,如果未能解决你的问题,请参考以下文章

SQL怎么从大表里面 查询包含小表的内容?

PHP 获取请求里的 header字段

4月第4题:http2首部压缩是什么原理?

如何使用GSON配置哪些POJO字段序列化为JSON?

HttpComponents 基础接口/类与HTTP message的对应关系

curl HTTP Header