java之http协议
HTTP协议
自从入坑以来,只要是跟web打交道,总是免不了这个HTTP协议,这是什么鬼,让我们一探究竟。(不周之处还请赐教!!!)
既然是协议,我们首先要问三个问题,谁跟谁的协议?协议是什么?怎么用?
第一个问题:
谁跟谁的协议?
所谓协议,至少需要两方,甲方and乙方,我们先说下甲方and乙方到底是谁,粗俗的理解,甲方就是我们用的浏览器客户端,乙方就是服务器--(可以先这样理解---存储你想要的页面的地方),http协议就是他们俩要遵守的协议。
第二个问题:
协议是什么?
还是要俗,比如说你去超市买东西,你跟售货员说来一瓶罐装可口可乐,注意这里面有三个元素(你,可口可乐,售货员),你跟售货员之间就遵循了一份协议。而可口可乐就是这份协议当中的一份内容,你说要罐装的可口可乐,售货员就给你拿一罐罐装的可口可乐,你说要红茶,售货员肯定给你拿红茶而不是其他的东西,这就是是http协议,它定义了你的请求格式,也定义了服务器的返回格式。你的请求格式:(一瓶,罐装,可口可乐可乐),如果售货员有的话-格式(有,一瓶,罐装,可口可乐),如果没有的话--格式(没有)。
官方语言:
HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式。
第三个问题:
怎么用?
http协议就是浏览器客户端跟服务器之间的协议,你想要访问一个页面,而页面存储在服务器,你得向服务器要,而怎么要就是你(也就是甲方)要遵循的协议,举个例子说明
第一个红色框框:GET是你请求资源的方式,/JavaWebDemoProject/Web/1.jsp----- 你要请求的页面,HTTP/1.1----http协议的版本,
第二个红色框框:accept:浏览器通过这个头告诉服务器,它所支持的数据类型
Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集
Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式
Accept-Language:浏览器通过这个头告诉服务器,它的语言环境
Host:浏览器通过这个头告诉服务器,想访问哪台主机
If-Modified-Since: 浏览器通过这个头告诉服务器,缓存数据的时间
Referer:浏览器通过这个头告诉服务器,客户机是哪个页面来的 防盗链
Connection:浏览器通过这个头告诉服务器,请求完后是断开链接还是何持链接
既然我们已经发出请求了,剩下的就是服务器的回应了。
第一个红色框框:http/1.1还是http协议的版本号,200是状态码--指的是对你的请求做出的回应 OK返回状态的原因,常见的状态码贴上:
第二个红色框框:告诉你的浏览器返回内容的类型啊,格式啊,字符编码啊,大小啊还有服务器的的一些基本信息啊这些东西吧,不做过多的解释了。
第三个红色框框:当然就是你想要页面的内容了,然后你的浏览器接收这些内容,然后以页面的形式展现给你!
好了,http协议本人理解的就这么多了,希望对大家有帮助。