• HTTP小结


    http

    一、HTTP协议简介

    HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。

    HTTP协议是学习JavaWEB开发的基石,不深入了解HTTP协议,就不能说掌握了WEB开发,更无法管理和维护一些复杂的WEB站点。

    HTTP协议的版本:HTTP/1.0、HTTP/1.1

    二、HTTP1.0和HTTP1.1的区别

    在HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源。

    HTTP1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源。

    一个好多同学搞不清楚的问题:

    一个web页面中,使用img标签引用了三幅图片,当客户端访问服务器中的这个web页面时,客户端总共会访问几次服务器,即向服务器发送了几次HTTP请求。

    三、HTTP请求

    客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。一个完整的HTTP请求包括如下内容: 一个请求行、若干消息头、以及实体内容,如下所示 :

    四、HTTP请求的细节——请求行

    请求行中的GET称之为请求方式,请求方式有:

    POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT

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

    不管POST或GET,都用于向服务器请求某个WEB资源,这两种方式的区别主要表现在数据传递上: 如请求方式为GET方式,则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔,例如: GET /mail/1.html?name=abc&password=xyz HTTP/1.1

    GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K。 如请求方式为POST方式,则可以在请求的实体内容中向服务器发送数据,Post方式的特点:传送的数据量无限制。

    五、HTTP请求的细节——消息头

    用于HTTP请求中的常用头

    Accept: text/html,image/* --支持数据类型

    Accept-Charset: ISO-8859-1 --字符集

    Accept-Encoding: gzip --支持压缩

    Accept-Language:zh-cn --语言环境

    Host: www.itcast.com:80 --访问主机

    If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT --缓存时间

    Referer: http://www.itcast.com/index.jsp --来自哪个页面、防盗链

    User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)

    Cookie

    Connection: close/Keep-Alive --链接状态

    Date: Tue, 11 Jul 2000 18:23:51 GMT --时间

    六、MIME类型

    多用途互联网邮件扩展(MIME,Multipurpose Internet Mail Extensions)是一个互联网标准,它扩展了电子邮件标准,使其能够支持非ASCII字符、二进制格式附件等多种格式的邮件消息 内容类型 :Content-Type: [type]/[subtype]; parameter

    type有下面的形式。

    Text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;

    Multipart:用于连接消息体的多个部分构成一个消息,这些部分可以是不同类型的数据;

    Application:用于传输应用程序数据或者二进制数据;

    Message:用于包装一个E-mail消息;

    Image:用于传输静态图片数据;

    Audio:用于传输音频或者音声数据;

    Video:用于传输动态影像数据,可以是与音频编辑在一起的视频数据格式。

    七、MIME类型:常用的subtype值

    text/plain(纯文本)

    text/html(HTML文档)

    application/xhtml+xml(XHTML文档)

    image/gif(GIF图像)

    image/jpeg(JPEG图像)【PHP中为:image/pjpeg】

    image/png(PNG图像)【PHP中为:image/x-png】

    video/mpeg(MPEG动画)

    application/octet-stream(任意的二进制数据)

    application/pdf(PDF文档)

    application/msword(Microsoft Word文件)

    message/rfc822(RFC 822形式)

    multipart/alternative(HTML邮件的HTML形式和纯文本形式,相同内容使用不同形式表示)

    application/x-www-form-urlencoded(使用HTTP的POST方法提交的表单)

    multipart/form-data(同上,但主要用于表单提交时伴随文件上传的场合)

    此外,尚未被接受为正式数据类型的subtype,可以使用x-开始的独立名称(例如application/x-gzip)。vnd-开始的固有名称也可以使用(例:application/vnd.ms-excel)。

    八、HTTP响应

    一个HTTP响应代表服务器向客户端回送的数据,它包括: 一个状态行、若干消息头、以及实体内容 。

    九、HTTP响应的细节——状态行

    状态行

    格式: HTTP版本号 状态码 原因叙述

    举例:HTTP/1.1 200 OK

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

    十、HTTP响应细节——常用响应头

    HTTP请求中的常用响应头

    Location: http://www.it315.org/index.jsp --跳转方向

    Server:apache tomcat --服务器型号

    Content-Encoding: gzip --数据压缩

    Content-Length: 80 --数据长度

    Content-Language: zh-cn --语言环境

    Content-Type: text/html; charset=GB2312 --数据类型

    Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT --最后修改时间

    Refresh: 1;url=http://www.it315.org --定时刷新

    Content-Disposition: attachment; filename=aaa.zip --下载

    Set-Cookie:SS=Q0=5Lb_nQ; path=/search

    Expires: -1 --缓存

    Cache-Control: no-cache --缓存

    Pragma: no-cache --缓存

    Connection: close/Keep-Alive --连接

    Date: Tue, 11 Jul 2000 18:23:51 GMT --时间

    十一、HTTP响应细节

    Content-Disposition名称使用中文 new String("中文显示".getBytes("GB2312"),"ISO-8859-1") 需要注意特殊字符:空格、/、、&、*、”、:、?
  • 相关阅读:
    记录我的第一次电话面试
    Spring整合Mybatis出现Access denied for user 'Think'@'localhost' (using password: YES)
    Lombok基本使用
    log4j整理
    mybatis常用的配置解析
    Java实现邮件发送
    Java获取UUID
    Java实现文件下载
    Java实现文件上传
    Java跳出多层for循环的4种方式
  • 原文地址:https://www.cnblogs.com/suihui/p/3560419.html
Copyright © 2020-2023  润新知