美文网首页
JavaEE-番外1-http协议

JavaEE-番外1-http协议

作者: ZzzRicardo_Yue | 来源:发表于2018-08-21 18:55 被阅读0次

    整理自:https://www.cnblogs.com/smyhvae/p/4126689.html


    • HTTP协议用于定义客户端与web服务器通迅的格式规定客户端和服务器如何进行交互)。
    • 它是基于TCP/IP协议的一个应用层协议。
    • HTTP使用请求-响应的方式进行传输,一个请求对应一个响应,并且请求只能由客户端发出,服务器只能被动的等待请求做出响应

    HTTP1.0和HTTP1.1的区别:

    • 在HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源。
    • HTTP1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源。
      通俗来讲,区别只有一个:当客户端与web服务器建立连接后(底层是流的操作),如果采用HTTP1.0协议,流会立即断开;HTTP1.1协议,流会保存一段时间,下次重新连接时,还继续使用这个流。

    get/post请求的区别:

    GET请求方式和POST请求区别在于请求参数在传递的过程中方式不同

    • get请求方式:显式请求方式,请求参数会在URL上显示,相对快,安全性较低,请求数据的大小一般不超过1kb。
    • post请求方式:隐式请求方式,请求参数将会在http请求的实体内容中进行传输,相对慢,安全性较高 ,请求数据的大小没有限制

    请求头示例

    示例
    第一行为请求,剩下的内容为请求和实体内容。
    GET /MyTest/test.html HTTP/1.1
    这一行分别说明了请求方式请求的路径地址所遵循的协议版本
    下面介绍常见的请求的内容:
    • Host:www.baidu.com:本次请求访问的主机地址(即虚拟主机名称
    • Cache-control:no-cache:设置网页缓存的使用方法
    • Accept:text/html,xxxxxx…..:客户端可以接收的数据类型(如果内容是:*/*,表示接收所有类型)
    • User-Agent:Mozilla/5.0xxxxx:主要表示客户端类型
    • Accept-Encoding:gzip,deflate,sdch :浏览器能够接收的数据压缩编码方式(表示浏览器能够接收什么格式的压缩的数据)
    • If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT:和缓存机制相关的头
    • Referer: http://www.smyh.me/index.jsp:当前页面来自哪个页面(可能是由之前的页面通过超链接点进到这个页面来)
    • Connection: close/Keep-Alive:请求完之后,是关闭此连接,还是继续保持连接
    • Date: Tue, 11 Jul 2013 18:23:51 GMT:当前请求的时间

    响应头示例:

    示例
    • 状态行:HTTP/1.1 200 OK 协议版本、状态码、原因叙述<CRLF>
    • 状态码:用于表示服务器对本次请求的处理结果,它是一个三位的十进制数。响应状态码分为5类,如下所示: 状态码

      常见状态码如下:
      200 成功接收请求
      302 实现重定向的功能
      304/307 使用浏览器中内置的缓存资源
      404 客户端请求错误
      500 服务器段出现错误

    常见的响应头键值对的含义:

    • Location: http://www.smyh.me/index.jsp 重定向(302+Location实现重定向)
    • Server 服务器类型
    • Content-Encoding 服务器当前返回给客户端的数据压缩格式
    • Content-Length 返回给客户端的数据量的大小
    • Content-Language: zh-cn 语言种类
    • Content-Type: text/html; charset=GB2312 返回的数据的类型、返回的字符集编码方式(通过设置charset,让浏览器用指定的方式进行解码)
    • Last-Modified 资源最后一次修改的时间(配合请求头中的If-Modified-Since+304/307实现缓存机制)
    • Refresh: 1;url=http://www.it315.org    隔多少秒以后,让当前页面去访问哪个地址(例如网页登陆成功,3秒后跳回原来的界面,就是用的这个头)
    • Content-Disposition: attachment;filename=aaa.zip 和下载相关,通知浏览器以附件的形式下载服务器发送过去的数据
    • Transfer-Encoding: chunked 数据传输模式
    • Set-Cookie:SS=Q0=5Lb_nQ; path=/search 和cookie相关的头
      ETag: W/"83794-1208174400000" 和cookie相关的头
    • Expires: -1 通知浏览器是否缓存当前资源:如果这个头的值是一个以毫秒为单位值,则通知浏览器缓存资源到指定的时间点;如果值是0或-1,则通知浏览器禁止缓存
    • Cache-Control: no-cache 通知浏览器是否缓存资源
    • Pragma: no-cache -- 通知浏览器是否缓存资源
      之所以上面的三个头是一个功能,是因为历史原因。不同的浏览器对这三个头支持的不同,一般来说这三个头要同时使用,以确保不同的浏览器都能实现控制缓存的功能
    • Connection: close/Keep-Alive 是否继续保持连接
    • Date: Tue, 11 Jul 2000 18:23:51 GMT 当前响应的时间

    相关文章

      网友评论

          本文标题:JavaEE-番外1-http协议

          本文链接:https://www.haomeiwen.com/subject/jbpjiftx.html