zoukankan      html  css  js  c++  java
  • 前端工程师必须要知道的HTTP部分

    1. IETF组织制定的标准

    rfc7234: https://tools.ietf.org/html/rfc7234 --- 原来的2616以被废弃

    2. 格式

    HTTP分为 请求Request响应Response,如图:

    Request 

    Header(例子解析):

    Body:

    一般请求体就是以下4种格式

    • application/json
    • application/x-www-form-urlencoded
    • mutipart/form-data
    • text/xml

    Demo:

    GET / HTTP/1.1
    Host: time.geekbang.org

    Response

    Header(例子解析):

    Body:

    一般响应体就是HTML、JSON 或者 二进制多媒体数据

    Demo:

    HTTP/1.1 301 Moved Permanently
    Date: Fri, 25 Jan 2019 13:28:12 GMT
    Content-Type: text/html
    Content-Length: 182
    Connection: keep-alive
    Location: https://time.geekbang.org/
    Strict-Transport-Security: max-age=15768000
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body bgcolor="white">
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>openresty</center>
    </body>
    </html>

    3. HTTP Method

    • GET (查)
    • POST (改)
    • PUT (增)
    • DELETE (删)
    • HEAD (只返回响应头的GET)
    • CONNECT (多用于WebSocket、HTTPS)
    • OPTIONs、TRACE (多用于调试)

    4. HTTP Status Code

    状态代码有以下:

    • 1xx:指示信息--表示请求已接收,继续处理。
    • 2xx:成功--表示请求已被成功接收、理解、接受。
    • 3xx:重定向--要完成请求必须进行更进一步的操作。
    • 4xx:客户端错误--请求有语法错误或请求无法实现。
    • 5xx:服务器端错误--服务器未能实现合法的请求。

    常见状态代码、状态描述的说明如下。

    • 200 OK:请求成功
    • 301 Moved Permanently 永久性重定向
    • 302 Move temporarily 临时重定向
    • 304 Not Modified 客户端缓存没有更新
    • 400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
    • 401 Unauthorized:没有身份认证
    • 403 Forbidden:没有权限
    • 404 Not Found:没有资源
    • 500 Internal Server Error:发生不可预期的错误
    • 503 Server Unavailable:暂时不能处理请求,一段时间后可能恢复正常

    Get 和 Post 的区别?

    无副作用:资源不变

    幂等:执行多次,跟执行一次效果一致。

    1. 在符合标准的情况下,Get运用于无副作用,幂等的场景,Post 多用于 有副作用,不幂等的场景。

    2. Get 能缓存,Post 不能

    3. Get 参数受限于url长度上限

    4. Post 支持更多的编码类型,Get 只有urlencode

  • 相关阅读:
    常用的站内搜索技术比较
    .NET中读取csv文件内容
    C#编码规范
    处理模型——检测光标是否在模型上
    数据库如何规范命名
    处理顶点——绘制三角形,线和点
    处理模型——根据地形正确倾斜模型
    处理顶点——使用索引移除冗余顶点
    处理顶点——在三角形上添加纹理
    处理模型——通过定义一个自定义的TypeWriter和TypeReader将多个对象存储在Tag属性中
  • 原文地址:https://www.cnblogs.com/amiezhang/p/6715069.html
Copyright © 2011-2022 走看看