• HTTP协议(二)---请求和响应


    HTTP通过请求和响应的交换达成通信。

    HTTP请求

    请求报文由请求行(请求方法、请求URI、协议版本)、请求首部字段以及内容实体(可能没有)构成。

    下面是一个GET请求,没有内容实体:

    下面是 一个POST请求

    请求方法

    GET:获取资源

    GET方法用来请求访问已被URI识别的资源,指定的资源经服务器端解析后返回响应内容。

    POST:传输实体主体

    PUT:传输文件

    PUT方法用来传输文件,要求在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置。但是,由于HTTP/1.1的PUT方法自身不带验证机制,任何人都可以上传文件,存在安全性问题,因此一般的web网站不使用该方法。

    HEAD:获取报文首部

    HEAD方法和PUT一样,只是不返回报文主体。用于确认URI的有效性及资源更新的日期时间等。

    DELETE:删除文件

    DELETE按请求URI删除指定资源。但是,HTTP/1.1的DELETE方法不带验证机制,因此一般的web网站也不使用DELETE方法。

    OPTIONS:询问支持的方法

    用于查询针对请求URI指定的资源支持的方法。

    TRACE:追踪路径

    TRACE方法是让web服务器将之前的请求通信返回给客户端的方法。客户端通过TRACE方法可以查询发送出去的请求方法是怎么被加工修改的。

    CONNECT:要求用隧道协议连接代理

    CONNECT要求与代理服务器通讯时建立隧道,实现用隧道协议进行TCP通信。主要使用SSL和TLS协议把通讯内容加密后经网络隧道传输。

    请求URI

    URL(Uniform Resource Locator ,统一资源定位符):是使用web浏览器等访问web页面时需要输入的网页地址。

    URI(Uniform Resource Identifier,统一资源标识符):用字符串标识某一互联网资源。而URL表示资源的地点,URL是URI的子集。

    协议版本

    现在多用HTTP/1.1

    响应报文

    响应报文由响应行(协议版本、状态码、原因短语)、响应首部字段以及实体主体(可能没有)构成。

    状态码

    1XX  信息性

    2XX  成功

    • 200 OK:表示客户端发来的请求在服务器端被正常处理了
    • 204 No Content:表示服务器接收的请求已正常处理,但在返回的响应报文中不包含实体的主体内容。另外,也不允许返回任何实体的主体。一般在只需要客户端往服务器端发送信息,而客户端不需要发送新信息内容的情况下使用。
    • 206 Partial Content:表示客户端发送了范围请求,而服务器端成功执行了这部分的GET请求。响应报文中包含由Content-Range指定范围的实体内容。

    3XX  重定向

    • 301 Moved Permanently:永久重定向。像请求的URI的忘记添加"/",就会产生301状态码。
    • 302 Found:临时性重定向。
    • 303 See Other:表示由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求资源
    • 304 Not Modified:表示客户端发送带条件的请求时,服务端允许访问资源,但条件未满足;返回的响应不包含主体部分。带条件的请求是指采用GET方法的请求报文中包含If-Match、If-None-Match、If-Modified-Since、If-Unmodified-Since、If-Range中的任一首部。
    • 307 Temporary Redirect:临时重定向。与302的差异:307不会从POST改成GET;302虽然也禁止,但是实际使用并不遵守,307会遵守。

    4XX 客户端错误

    • 400 Bad Request:表示请求报文中存在语法错误。浏览器会像 200 OK一样对待该状态码。
    • 402 Unanthorized:发送的请求需要有通过HTTP认证(BASIC认证、DIGEST认证)的认证信息;若之前进行过一次请求,则表示认证失败。响应必须包含一个适用于请求资源的WWW-Authenticate首部用以exchange用户信息。浏览器初次接收到401的响应,会弹出认证用的对话窗口
    • 403 Forbidden:表示请求访问资源被服务器拒绝了。因为未获得文件系统的访问授权等。
    • 404 Not Found:服务器上无法找到请求的资源。或服务器拒绝请求且不想说明理由也可以使用。

    5XX 服务器端错误

    • 501 Internet Server Error:服务器端在执行请求时发生了错误。
    • 503 Service Unavailable:服务器暂时处于超负载或停机维护,无法处理请求 。

    其他状态码可查看RFC2616、RFC4918、RFC5842、RFC6585等

  • 相关阅读:
    Hdu1711 Number Sequence--Kmp模板题
    Trie入门--Poj3630 Phone List,查单词,HDU1251 统计前缀,PKU2503 Babelfish
    高次幂的组合数表示形式
    BZOJ1697 [Usaco2007 Feb] Cow Sorting牛排序
    1025 [SCOI2009]游戏(置换群,DP)
    Poj1721 Cards
    [Poi2003]Shuffle
    poj 3128 Leonardo's Notebook(置换的幂)
    POJ3734 Block母函数入门
    重心拉格朗日插值法
  • 原文地址:https://www.cnblogs.com/he-202007/p/13687735.html
Copyright © 2020-2023  润新知