HTTP使用总结

什么是HTTP

HTTP(Hypertext Transfer Protocol),超⽂本传输协议,和HTML (HypertextMarkup Language超⽂本标记语⾔)⼀起诞⽣,⽤于在⽹络请求和传输HTML内容。超⽂本,即「扩展型⽂本」,指的是HTML中可以有链向别的⽂本的链接(hyperlink)。是属于网络的应用层


image.png

HTTP的工作方式

⽤户输⼊地址后回⻋或点击链接 -> 浏览器拼装 HTTP 报⽂并发送请求给服务器 -> 服务器处理请求后发送响应报⽂给浏览器 -> 浏览器解析响应报⽂并使⽤渲染引擎显示到界⾯

HTTP的工作模型

  • 客户端组装报文发送给服务端----->服务端接收报文,处理报文后返回响应报文给客户端----->客户端处理返回响应报文

HTTP请求报文格式:请求行、Headers、Body

请求行>>> POST http://xxxxx.com:8080/api/adminuser http/1.1
Headers>>> Content-Type: application/json; charset=UTF-8
Headers>>> Content-Length: 26
Body >>> {"userName":"15770828256"}
> END POST (26-byte body)
请求行:Method ,Path ,HTTP version (GET /users HTTP/1.1)
  • Method:POST,GET,PUT,DELETE

POST和GET方法的区别

  • 从缓存的角度,GET 请求会被浏览器主动缓存下来,留下历史记录,而 POST 默认不会。
  • 从编码的角度,GET 只能进行 URL 编码,只能接收 ASCII 字符,而 POST 没有限制。
  • 从参数的角度,GET 一般放在 URL 中,因此不安全,POST 放在请求体中,更适合传输敏感信息。
    从幂等性的角度,GET是幂等的,而POST不是。(幂等表示执行相同的操作,结果也是相同的)
  • 从TCP的角度,GET 请求会把请求报文一次性发出去,而 POST 会分为两个 TCP 数据包,首先发 header 部分,如果服务器响应 100(continue), 然后发 body 部分。(火狐浏览器除外,它的 POST 请求只发一个 TCP 包)

Headers

  • HOST:主机地址
  • Content-Type: Body的内容类型/Body的长度 (application/json; charset=UTF-8)
  • Location:重定向的目标 URL
  • User-Agent:用户代理
  • Range / Accept-Range:指定 Body 的内容范围
  • Cookie / Set-Cookie:发送 Cookie / 设置 Cookie
  • Authorization:授权信息
  • Content-Encoding:压缩类型。如 gzip
  • Accept-Encoding: 客户端接受的压缩编码类型。如 gzip
  • Accept-Charset: 客户端接受的字符集。如 utf-8
  • Accept: 客户端能接受的数据类型。如 text/html

Body

  • 要发送给服务端内容

HTTP响应报文格式:状态行、Headers、Body

<-- 200 OK http://tewang88.com:8080/api/adminuser
Content-Length: 701
Content-Type: application/json; charset=utf-8
{"result":"成功","code":0,"msg":"sucess"}
  • Status Code: 1xx(信息)、2xx(成功)、3(重定向)、4(客户端错误)、5(服务器错误)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • HTTP详细总结 一、前言 URI URI(统一资源标识符):我们使用HTTP协议,主要就用来访问互联网上的各种资...
    程序员小逗逼阅读 644评论 0 1
  • 苦逼的找工作时期 HTTP报文:它是HTTP应用程序之间发送的数据块。这些数据块以一些文本形式的元信息开头,这些信...
    勇往直前z阅读 1,450评论 0 0
  • 上回就已经承诺过大家,一定会出 HTTP 的系列文章,今天终于整理完成了。作为一个 web 开发,HTTP 几乎是...
    Java旺阅读 487评论 0 0
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 126,309评论 2 7
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,122评论 0 4