• HTTP请求、响应报文格式


    HTTP请求报文格式:

    HTTP请求报文主要由请求行、请求头部、请求正文3部分组成

    1,请求行

    由3部分组成,分别为:请求方法、URL(见备注1)以及协议版本,之间由空格分隔

    请求方法包括GET、HEAD、PUT、POST、TRACE、OPTIONS、DELETE以及扩展方法,当然并不是所有的服务器都实现了所有的方法,部分方法即便支持,处于安全性的考虑也是不可用的

    协议版本的格式为:HTTP/主版本号.次版本号,常用的有HTTP/1.0和HTTP/1.1

    2,请求头部

    请求头部为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔

    常见请求头如下:

    请求头

    说明

    Host

    接受请求的服务器地址,可以是IP:端口号,也可以是域名

    User-Agent

    发送请求的应用程序名称

    Connection

    指定与连接相关的属性,如Connection:Keep-Alive

    Accept-Charset

    通知服务端可以发送的编码格式

    Accept-Encoding

    通知服务端可以发送的数据压缩格式

    Accept-Language

    通知服务端可以发送的语言

    请求头部的最后会有一个空行,表示请求头部结束,接下来为请求正文,这一行非常重要,必不可少

    3,请求正文

    可选部分,比如GET请求就没有请求正文

    GET请求示例:

    POST请求示例:

    HTTP响应报文格式:

    HTTP响应报文主要由状态行、响应头部、响应正文3部分组成

    1,状态行

    由3部分组成,分别为:协议版本,状态码,状态码描述,之间由空格分隔

    状态代码为3位数字,200~299的状态码表示成功,300~399的状态码指资源重定向,400~499的状态码指客户端请求出错,500~599的状态码指服务端出错(HTTP/1.1向协议中引入了信息性状态码,范围为100~199)

    这里列举几个常见的:

    状态码

    说明

    200                   

    响应成功

    302

    跳转,跳转地址通过响应头中的Location属性指定(JSP中Forward和Redirect之间的区别

    400

    客户端请求有语法错误,不能被服务器识别

    403

    服务器接收到请求,但是拒绝提供服务(认证失败)

    404

    请求资源不存在

    500

    服务器内部错误

    2,响应头部

    与请求头部类似,为响应报文添加了一些附加信息

    常见响应头部如下:

    响应头

    说明

    Server

    服务器应用程序软件的名称和版本

    Content-Type

    响应正文的类型(是图片还是二进制字符串)

    Content-Length

    响应正文长度

    Content-Charset

    响应正文使用的编码

    Content-Encoding

    响应正文使用的数据压缩格式

    Content-Language

    响应正文使用的语言

    响应示例:

    PS:

    1,URI、URL和URN之间的区别

    URI全名为Uniform Resource Indentifier(统一资源标识),用来唯一的标识一个资源,是一个通用的概念,URI由两个主要的子集URL和URN组成

    URL全名为Uniform Resource Locator(统一资源定位),通过描述资源的位置来标识资源

    URN全名为Uniform Resource Name(统一资源命名),通过资源的名字来标识资源,与其所处的位置无关,这样即使资源的位置发生变动,其URN也不会变化

    HTTP规范将更通用的概念URI作为其资源标识符,但是实际上,HTTP应用程序处理的只是URI的URL子集

  • 相关阅读:
    STRIDE威胁分析与DREAD威胁评价
    HashMap 几大问题
    java 集合中的错误检测机制
    科创人·StreamNative翟佳:开源模式价值为王,基础软件的未来在国内社区
    科创人·云柚智能CEO汤峥嵘:价值观一致奠定共事基础,技术创新加速行业变革
    科创人·微软中国CTO韦青:数智时代创业得跳下巨人肩膀,还需掌握基础知识和逻辑能力
    科创人研习社·微智云CEO 张虎:从CTO到创始人关键是扩大视野半径
    科创人·天云数据CEO雷涛:打造正确理解数智的认知体系
    neovim环境与vim简单使用
    MIT6.828——Lab3 PartA(麻省理工操作系统实验)
  • 原文地址:https://www.cnblogs.com/yfz1552800131/p/8620257.html
Copyright © 2020-2023  润新知