HTTP相关

HTTP中的方法
  • HTTP1.0定义了三种请求⽅法: GET, POST 和 HEAD⽅法
  • HTTP1.1新增了五种请求⽅法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT
这些方法的作用:
  • GET: 通常⽤于请求服务器发送某些资源
  • POST: 发送数据给服务器
  • HEAD: 请求资源的头部信息, 并且这些头部与 HTTP GET ⽅法请求时返回的⼀致. 该请求⽅法的⼀个使⽤场景是在 下载⼀个⼤⽂件前先获取其⼤⼩再决定是否要下载, 以此可以节约带宽资源
  • OPTIONS: ⽤于获取⽬的资源所⽀持的通信选项
  • PUT: ⽤于新增资源或者使⽤请求中的有效负载替换⽬标资源的表现形式
  • DELETE: ⽤于删除指定的资源
  • PATCH: ⽤于对资源进⾏部分修改 CONNECT: HTTP/1.1协议中预留给能够将连接改为管道⽅式的代理服务器 TRACE: 回显服务器收到的请求,主要⽤于测试或诊断
GET和POST的区别
  • 数据传输⽅式不同:GET请求通过URL传输数据,⽽POST的数据通过请求体传输。
  • 安全性不同:POST的数据因为在请求主体内,所以有⼀定的安全性保证,⽽GET的数据在URL中,通过历史记录,缓存很容易查到数据信息。
  • 数据类型不同:GET只允许 ASCII 字符,⽽POST⽆限制
  • GET⽆害: 刷新、后退等浏览器操作GET请求是⽆害的,POST可能重复提交表单
http的请求报⽂和响应报文
  • 请求报文:由四部分组成
    • 请求行、请求头、空行、请求体
  • 响应报文:
    • 响应行、响应头、空行、响应主体
HTTP的状态码
  • 2XX 成功
    • 200 OK,表示从客户端发来的请求在服务器端被正确处理
    • 201 Created 请求已经被实现,⽽且有⼀个新的资源已经依据请求的需要⽽建⽴
    • 202 Accepted 请求已接受,但是还没执⾏,不保证完成请求
    • 204 No content,表示请求成功,但响应报⽂不含实体的主体部分
    • 206 Partial Content,进⾏范围请求
  • 3XX 重定向
    • 301 moved permanently,永久性重定向,表示资源已被分配了新的 URL
    • 302 found,临时性重定向,表示资源临时被分配了新的 URL
    • 303 see other,表示资源存在着另⼀个 URL,应使⽤ GET ⽅法丁⾹获取资源
    • 304 not modified,表示服务器允许访问资源,但因发⽣请求未满⾜条件的情况
    • 307 temporary redirect,临时重定向,和302含义相同
  • 4XX 客户端错误
    • 400 bad request,请求报⽂存在语法错误
    • 401 unauthorized,表示发送的请求需要有通过 HTTP 认证的认证信息
    • 403 forbidden,表示对请求资源的访问被服务器拒绝
    • 404 not found,表示在服务器上没有找到请求的资源
    • 408 Request timeout, 客户端请求超时
    • 409 Confict, 请求的资源可能引起冲突
  • 5XX 服务器错误
    • 500 internal sever error,表示服务器端在执⾏请求时发⽣了错误
    • 501 Not Implemented 请求超出服务器能⼒范围,例如服务器不⽀持当前请求所需要的某个功能,或者请求是服务 器不⽀持的某个⽅法
    • 503 service unavailable,表明服务器暂时处于超负载或正在停机维护,⽆法处理请求
    • 505 http version not supported 服务器不⽀持,或者拒绝⽀持在请求中使⽤的 HTTP 版本
HTTP的keep-alive作用:

在早期的HTTP/1.0中,每次http请求都要创建⼀个连接,⽽创建连接的过程需要消耗资源和时间,为了减少资源消耗, 缩短响应时间,就需要重⽤连接。在后来的HTTP/1.0中以及HTTP/1.1中,引⼊了重⽤连接的机制,就是在http请求头中 加⼊Connection: keep-alive来告诉对⽅这个请求响应完成后不要关闭,下⼀次咱们还⽤这个请求继续交流。协议规定HTTP/1.0如果想要保持⻓连接,需要在请求头中加上Connection: keep-alive。

keep-alive的优点:
  • 较少的CPU和内存的使⽤(由于同时打开的连接的减少了)
  • 允许请求和应答的HTTP管线化
  • 降低拥塞控制 (TCP连接减少了)
  • 减少了后续请求的延迟(⽆需再进⾏握⼿)
  • 报告错误⽆需关闭TCP连
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • HTTP 是一种超文本传输协议(Hypertext Transfer Protocol),HTTP 是一个在计算机...
    没糖_cristalle阅读 494评论 0 0
  • 原文地址 HTTP协议 在 OSI 七层模型中,HTTP协议位于最顶层的应用层中。通过浏览器访问网页就直接使用了 ...
    gyl_coder阅读 444评论 0 0
  • 首先列出七层协议(恶补了大学所逃的计算机网络😅)计算机七层协议:物理层 数据链路层 网络层 传输层 会话层 表示层...
    野蛮生长_ed2e阅读 573评论 0 1
  • 一. 什么是HTTP HTTP协议工作在应用层,端口号是80。HTTP协议被用于网络中两台计算机间的通信,相比于T...
    cunfate阅读 382评论 0 0
  • 1.你都了解那些状态吗,他们的含义是什么 2.建立HTTP连接流程 http & https & 网络请求过程 3...
    Rumbles阅读 388评论 0 0