栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

复习笔记-HTTP协议

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

复习笔记-HTTP协议

复习手记--HTTP协议

一:什么是http

     http是hypertext transfer protocal(超文本传输协议)的简写,它是TCP/IP协议的应用层协议,用于定义WEB浏览器和WEB服务器之间交换数据的过程。http是学习web开发的基础。

    HTTP协议的版本有http/1.0、http/1.1。在http1.0协议是属于短连接,即客户端与web服务器端建立连接后,只能获得一个资源。而http1.1协议版本是属于长连接,即客户端和web服务器端建立连接后,在一次连接信道里可以获取多个web资源。

     

      上图所示,通过浏览器访问本地搭建好的tomcat服务器,打开tomcat首页,会有四次请求,如果这四次请求是四次连接那么对服务器造成的压力是巨大的,http1.1协议有效的解决了这个问题,一次请求后在一段时间内会保持连接状态(Connection: keep-alive )。

       从过程开http协议包括两部分,http请求和http响应。

       二:http请求

                 什么是http请求

                 客户端连上web服务器后,想服务器请求某个web资源,称客户端想服务端发送一个http请求。一个完整的http请求包括三部分:一个请求行、若干个请求头以及请求体。

                

                请求行:请求行用于描述客户端的求情方式、请求资源名称、以及使用的http协议版本号。

                        请求行中的GET 为请求方式,请求方式一般有:POST,GET,HEAD,OPTION,DELETE,TRACE,PUT.

                        常用的有:GET,POST

                        如果用户没有设置,默认情况下浏览器想服务器发送的都是GET请求,如在浏览器中直接输入地址,点击超链接等都是get,用户如果想把请求方式改为post,可通过更改表单的提交方式实现

1

2

3

                   不管是post还是get,都用于想服务器请求某个web资源,这两种方式的主要区别主要表现在数据传递上:

                       get方式,在请求的url地址后面以“?”的形式带上交给服务器的请求数据,多个数据之间用"&"隔开,如  应用广场 - 微博-随时随地发现新鲜事,get方式在url后面附带参数是用限制的,其数据容量不能超过1k;如post请求方式,是在请求体中想服务器发送数据,它传输的数据是没有大小限制的

                请求头:请求头用户描述客户端请求哪台主机,以及客户端的一些环境信息等。

          http常用请求头:

          Accept:text/html,image/*  浏览器告诉服务器,浏览器支持的数据类型

          Accept-Charset:浏览器告诉服务器,客户机采用的编码

                        Accept-Encoding:浏览器告诉服务器,客户机支持的数据压缩格式

            Accept-Language:客户机的语言环境

          Host:告诉服务器向访问的主机名

         If-Modified-Since:客户机通过这个头告诉服务器,资源的缓存时间。例如新浪首页一般会把首页缓存,浏览器访问的时候是带着时间值过来的,如果服务器的时间值比浏览器带过来的时间值新,那么服务器就回送新的数据给浏览器

         referer:客户机通过这个头告诉服务器,是从哪个资源访问到当前资源的

         User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31 告诉服务器,客户机的软件环境

         cookie:客户机通过这个头可以想服务器带数据,这些数据是在浏览器端的

         Range:只是服务器只传输一部分Web资源,这个头可用来实现断电续传功能,range可通过三种格式设置传输的字节范围

            range:bytes=1000-2000,传输范围从1000-2000字节

            range:bytes=1000-        传输web资源中第1000个字节以后的所有内容

            range:bytes=1000         传输最后1000个字节

                       Connection:请求后是否保持连接状态

              请求数据:请求数据一般和请求头之间空一行,上图中因为是get方式所以没有请求数据,只有post的请求方式才有请求数据。

    三、http响应

      一个http响应代表服务器向客户端回送的数据,它包括:一个状态行、若干个响应头以及响应报文体

        

       状态行:用于描述服务器对请求的处理结果。格式:http协议版本号  状态码  描述。    如:http/1.1  200  OK

          状态码用于描述服务器对请求的处理结果,它是一个三位十进制数字,响应状态码分五类,如下图所示:

          

           其中302表示重定向。

           304表示户端已经执行了GET,但文件未变化,304响应禁止包含消息体,因此始终以消息头后的第一个空行结尾。

       响应头:用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述,可以通知客户端如何处理一会它回送的数据。

          http常用响应头:

          Location:配合状态码是302使用,用于告诉浏览器要找的资源。

          Server:Apache 通过这个响应头告诉浏览器服务器的类型

          Content-Encoding: gzip 通过这个头,服务器告诉浏览器数据的压缩格式

          Content-Length: 68217,服务器通过这个头,告诉浏览器回送数据的长度

          Content-Type: text/html,服务器 通过这个头,告诉浏览器回送数据的类型,浏览器根据这个类型来解析数据

          Last-Modified: Tue, 02 Apr 2013 13:48:01 GMT,服务器通过这个头,告诉浏览器当前资源的缓存时间

          Refresh:  通过这个头,告诉浏览器多长时间刷新一次

          Content-Disposition:attachment;filename=1.jpg,通过这个头,告诉浏览器以下载方式打开数据

          Transfer-Encoding: chunked,服务器通过这个头,告诉浏览器数据的传送格式

          ETag:和缓存相关的头

          Expires: Tue, 02 Apr 2013 13:50:43 GMT,服务器通过这头,把回送的数据返回多长时间,-1或0则不缓存。

          Cache-control:no-cache

          Progma:no-cache, 服务器通过以上这两个头,控制浏览器不缓存数据。

          Connection:close/keep-Alive,响应完了后的状态,是断开还是保持连接

          Accept-Ranges:说明wen服务器是否支持range

          Content-Range:1000-3000/5000  指定返回的web资源的字节范围. 

          Date:当前时间

       响应报文体:代表服务器向客户端回送的数据

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/756739.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号