美文网首页
黑猴子的家:JavaWeb 之 HTTP 协议

黑猴子的家:JavaWeb 之 HTTP 协议

作者: 黑猴子的家 | 来源:发表于2019-12-13 10:23 被阅读0次

    1、HTTP概述

    1)HTTP 是什么 ??what?

    HTTP超文本传输协议 (HTTP-Hyper text transfer protocol),是一个属于应用层的面向对象的协议。
    它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。
    它定义了浏览器和服务器之间进行数据交换时的数据格式:请求和响应的数据格式。

    2)浏览器与服务器之间的通信过程要经历四个步骤

    说明:
    本次响应完成后,就关闭连接。下次再想请求时候,就建立另外的一个连接。多个连接间没有任何的关系。所以Http协议,又称为无状态的协议。

    2、GET/POST请求格式

    以Web04_Servlet中的form.xml的get/post请求Servlet为例说明:(要求Servlet中提供请求转发和重定向)

    1)请求分为三部分

    请求行、请求消息头、请求体

    2)请求行

    GET请求
    [1]从字面意思来说,GET请求是用来向服务器端获取信息而发送的请求。
    [2]没有特殊设置,默认情况下浏览器发送的都是GET请求,例如点击超链接、在浏览器地址栏直接输入地址访问。
    [3]GET请求也可以向服务器端发送请求参数,形式是在URL地址后面加上?,请求参数名和值用=连接,多个请求参数之间使用&分隔。例如:GET /mail/1.html?name=abc&password=xyz HTTP/1.1
    需要注意的是:GET方式所能够携带的数据是有限制的,其数据大小通常不能超过4K,不适于提交大量表单数据,故而在表单的提交方式中首选POST方式。
    POST请求
    [1]POST请求的字面含义是向服务器端发送数据,仅在表单中设置method=”post”时,请求方式为POST方式[另外在Ajax应用中,可以指定请求方式为POST。
    [2]POST请求会将请求参数放在请求体中,而不是URL地址后面,并且发送数据的大小是没有限制的。

    3)请求消息头:(简称请求头)
    代码 说明
    Accept: text/html,image/* 我支持的数据类型
    Accept-Charset: utf-8 支持的数据的编码字符集
    Accept-Encoding: gzip 支持的压缩方式
    Accept-Language: en-us,zh-cn 支持的语言
    Host: localhost:8888 请求的主机名
    Referer: http://www.it315.org/index.jsp 发送请求的界面对应的url 防盗链
    User-Agent: Mozilla/4.0 浏览器的相关信息
    Connection: keep-Alive 请求完成后,到是断开呢还是连接着
    Date: Tue, 11 Jul 2000 18:23:51 GMT 发送请求的时间
    Cookie: tt=123 对具体客户端所做的标记
    4)请求体

    [1]GET请求没有请求体 GET最大传输4K大小的数据
    [2]POST请求:如果form表单提交的方式为post,则表单项的数据以请求体的形式发送给服务器,没有大小限制

    3、响应格式

    1)响应

    所谓响应其实就是服务器对请求处理的结果,或者如果浏览器请求的直接就是一个静态资源的话,响应的就是这个资源本身。

    2)HTTP响应的组成

        (1)响应状态行:包括协议版本、响应状态码、响应状态信息
            HTTP/1.1 200 OK
            协议版本号 响应状态码 响应状态说明
        (2)响应消息头:响应头。封装了与当前响应相关的信息
        (3)响应体。用来在浏览器窗口中显示的内容。例如:html中的内容。

    3)最常见的响应状态码
    代码 表示 说明
    200 成功 服务器已成功处理了请求。通常,这表示服务器提供了请求的网页
    302 重定向 代表让浏览器重新请求另一个资源
    404 找不到 找不到请求的资源,但有时请求路径正确也返回404往往是由于Web应用有配置方面的问题,例如按照配置文件中指定的组件的全类名找不到指定的类
    500 错误 服务器内部错误,例如服务器端程序运行时抛出异常

    响应状态码以2开头的通常表示成功。
    响应状态码以3开头的通常表示转移。
    响应状态码以4开头的通常表示无法访问,其中包括找不到资源或没有权限等。
    响应状态码以5开头的通常表示服务器端程序运行出错。

    相关文章

      网友评论

          本文标题:黑猴子的家:JavaWeb 之 HTTP 协议

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