大家好,我是IT修真院上海分院第5期学员,一枚正直善良的JAVA程序员。
今天给大家分享一下,修真院官网JAVA任务2中,Http的Header里面包含哪些字段,每个字段都有哪些含义?
一、背景介绍
协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则。
超文本传输协议(HTTP)是一种详细规定了浏览器和万维网服务器之间互相通信的规则,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。
通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个空行(表示头域结束)和可选的消息体组成。
HTTP的头域包括通用头,请求头,响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。
二.知识剖析
这里主要说下request和response的头部消息。
1.HTTP Request的头部信息
request消息的头部是这个结构:HTTP-METHOD URL HTTP-Version。
1.1HTTP请求方式,包括:GET(向web服务器请求一个文件);POST(向web服务器发送数据让web服务器进行处理);PUT(向Web服务器发送数据并存储在Web服务器内部);HEAD(检查一个对象是否存在);DELETE(从web服务器上删除一个文件);TRACE(跟踪到服务器的路径);OPTIONS(查询web服务器的性能)。
主要使用到“GET”和“POST"。
1.2HOST,请求的web服务器域名地址。
1.3User-Agent,HTTP客户端运行的浏览器类型的详细信息。通过该头部信息,web服务器可以判断到当前HTTP请求的客户端浏览器类型。
1.4Accept,指定客户端能够接受的内容类型,内容类型中的先后次序表示客户端接收的先后次序。1.5Accept-Language,指定HTTP客户端浏览器用来展示返回信息所优先选择的语言。
1.6Accept-Encoding,指定客户端浏览器可以支持的web服务器返回内容压缩编码类型。表示允许服务器在将输出内容发送到浏览器以前进行压缩,以节约带宽。而这里设置的就是客户端浏览器所能够支持的返回压缩格式。
1.7Accept-Charset,浏览器可以接受的字符编码集。
1.8Content-Type,显示此HTTP请求提交的内容类型。一般只有post提交时才需要设置该属性。1.9Connection,表示是否需要持久连接。如果web服务器端看到这里的值为“keep-Alive”,或者看到请求使用的是HTTP 1.1(HTTP1.1默认进行持久连接),它就可以利用持久连接的优点,当页面包含多个元素是(例如Applet,图片),也显著地减少下载所需要的时间。
1.10Keep-alive,显示此HTTP连接的时间,使客户端到服务器端的连接持续有效,当出现对服务器的后续请求时,可以避免建立或重新建立连接。
1.11cookie,HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。
1.12Referer。包含URL,用户从该URL代表的页面出发访问当前请求的页面。
2.HTTP中response
Response 消息中的第一行叫做状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。
第一行的格式:HTTP-Version Status-Code Reason-PhraseCRLF
2.1Content-Length。表示web服务器返回消息正文的长度。
2.2Content-Type。返回数据的类型(例如text/html文本类型)和字符编码格式。
2.3Date。显示当前的时间
三.常见问题
1.经常看到有关xml时提到"application/xml" 和 "text/xml"两种类型有什么区别?
二者功能一模一样,唯一的区别就是编码格式,text/xml忽略xml头所指定编码格式而默认采用us-ascii编码,而application/xml会根据xml头指定的编码格式来编码。
2q=qvalue起什么作用?
q相当于描述了客户端对于某种媒体类型的喜好系数,该值范围是0-1。默认为1。与被描述的参数用分号隔开。
四.解决方案
五。编码实战
六、参考文献
https://www.cnblogs.com/itcqx/p/5849734.html
http://www.cnblogs.com/TankXiao/archive/2012/02/06/2337728.html
https://blog.csdn.net/wangxin1982314/article/details/50608380
http://www.iwms.net/n2030c40.aspx
七.更多讨论
百度大法好。
详见视频
感谢大家观看
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
技能树.IT修真院
“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。
这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~