http 请求报文

参考文章
三部分组成: 状态行请求头消息主体

头信息

  • [method]:GET/POST
  • Content-Type : 提交的数据编码方式 (详情见后)
  • If-Modified-Since:告诉浏览器是否需要返回新的资源,不返回,使用本地,响应 304 Not Modified
  • Connection:【Keep-Alive】,默认是不设置,设置了,不用重新建立(TCP连接), 请求头里有该信息,响应头里也会有该信息
  • Content-Length : 数据长度 (动态生成的文件没有该属性,是以 Transfer-Encoding[chunked] 分块传输)
  • Transfer-Encoding :chunked (数据的传输格式)

表头信息解释

Content-Type

Content-Type(POST 方式的):

  • application/x-www-form-urlencoded 表单方式 【浏览器 默认是该种方式】
  • multipart/form-data 使用表单上传文件时,必须让 表单的 enctype 等于 multipart/form-data

Content-Type(其他方式)

前提是服务器端能解析Content-TypeContent-Encoding 的以下几种方式

  • application/json
  • text/xml xml 格式
  • application/x-protobuf 二进制格式
  • multipart
消息主体 Content-Type

参考文章

POST http://www.example.com HTTP/1.1
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryrGKCBY7qhFd3TrwA------WebKitFormBoundaryrGKCBY7qhFd3TrwA
Content-Disposition: form-data; name="text"title
------WebKitFormBoundaryrGKCBY7qhFd3TrwA
Content-Disposition: form-data; name="file"; filename="chrome.png"
Content-Type: image/pngPNG ... content of chrome.png ...
------WebKitFormBoundaryrGKCBY7qhFd3TrwA--
Connection

是否与服务器端保持连接

如何知道 服务器 与 客户端(浏览器) 断开连接

  • Keep-Alive: timeout=5, max=100 表示tcp保持连接5s,最多100次请求后就断开

GET

仅仅用于信息获取
例如

GET /books/?sex=man&name=Professional HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Connection: Keep-Alive

POST

用于提交资源修改

POST / HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 40
Connection: Keep-Alive
// 请求body
sex=man&name=Professional

GET 与 POST 对比

1.http URL

GET http URL 的长度有限制;
POST http URL 的长度没有限制;

2.请求信息

GET 请求信息在 URL
POST 请求信息在 请求body

http 响应报文

三部分组成: 状态行响应头(Response Header)、响应正文

状态行

状态行由协议版本、数字形式的状态代码、及相应的状态描述,各元素之间以空格分隔。

常见状态信息解释

  • 200 OK 客户端请求成功
  • 301 Moved Permanently 请求永久重定向
  • 302 Moved Temporarily 请求临时重定向
  • 304 Not Modified 文件未修改,可以直接使用缓存的文件。
  • 400 Bad Request 由于客户端请求有语法错误,不能被服务器所理解。
  • 401 Unauthorized 请求未经授权。这个状态代码必须和WWW-Authenticate报头域一起使用
  • 403 Forbidden 服务器收到请求,但是拒绝提供服务。服务器通常会在响应正文中给出不提供服务的原因
  • 404 Not Found 请求的资源不存在,例如,输入了错误的URL
  • 500 Internal Server Error 服务器发生不可预期的错误,导致无法完成客户端的请求。
  • 503 Service Unavailable 服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常。

HTTP Pipelining(HTTP 管线化)

非 Pipelining 方式:请求1 -> 响应1 -> 请求2 -> 响应2 -> 请求3 -> 响应3。
Pipelining 方式:请求1 -> 请求2 -> 请求3 -> 响应1 -> 响应2 -> 响应3;[仅 HTTP/1.1 支持此技术]

特点:

  • 管线化机制通过持久连接(persistent connection)完成,仅 HTTP/1.1 支持此技术(HTTP/1.0不支持)
  • 只有 GET 和 HEAD 请求可以进行管线化,而 POST 则有所限制
  • 初次创建连接时不应启动管线机制,因为对方(服务器)不一定支持 HTTP/1.1 版本的协议
  • 管线化不会影响响应到来的顺序,如上面的例子所示,响应返回的顺序并未改变
  • HTTP /1.1 要求服务器端支持管线化,但并不要求服务器端也对响应进行管线化处理,只是要求对于管线化的请求不失败即可
  • 由于上面提到的服务器端问题,开启管线化很可能并不会带来大幅度的性能提升,而且很多服务器端和代理程序对管线化的支持并不好,因此现代浏览器如 Chrome 和 Firefox 默认并未开启管线化支持

会话跟踪

跨站攻击

参考文章

http 请求头设置相关推荐

  1. vue--axios请求头设置传输编码格式+

    1:最近做vue-cli项目的时候,后台同事说传给他的报文中文全是乱码,设置格式如下: headers: {'Content-Type': 'application/x-www-form-urlenc ...

  2. ios 请求头设置token_HTTP中的OPTIONS请求

    前言 http请求之前已经接触了很多,但是这个options请求我还是第一次,刚来到公司的时候进行调试,发现NetWork里,每个请求在发出之前都会先发送一个options请求,第二个才是正常的请求. ...

  3. Request header field content-type is not allowed by Access-Control-Allow-Headers(请求头设置问题)

    错误如上图.翻译过来就是:访问控制允许标题不允许使用请求标题字段内容类型.要么是自己设置的请求头信息不对,要么就是重复设置导致覆盖出错. 检查自己在前后台交互的时候设置的请求头的相关信息,不要重复设置 ...

  4. ajax伪造请求头设置失败,以及浏览器插件解决方案(待完善)

    w3c规定,当请求的header匹配以下不安全字符时,将被终止,具体参考如下: Accept-Charset Accept-Encoding Connection Content-Length Coo ...

  5. ajax中设置请求头和自定义请求头

    回到文章总目录 1.创建在testfour文件夹并在这个文件夹里面 2.创建post.html文件 3.创建server.js文件 本篇文章使用了鼠标移动至方框则自动发送请求至服务端 通常设置请求头 ...

  6. python request 请求头_python爬虫请求头如何设置?

    一.requests设置请求头: import requests url="http://www.targetweb.com" headers={ 'Accept':'text/h ...

  7. 08-Flutter移动电商实战-dio基础_伪造请求头获取数据

    08-Flutter移动电商实战-dio基础_伪造请求头获取数据 在很多时候,后端为了安全都会有一些请求头的限制,只有请求头对了,才能正确返回数据.这虽然限制了一些人恶意请求数据,但是对于我们聪明的程 ...

  8. Request Headers 和Response Headers——请求头和响应头

    前沿 作为一个前端开发工程师看不懂每条请求的请求头和响应头,实在是一件很难受的事情.最近花了一些时间整理了一篇文档,一起来看看前后端交互时每个资源的信息. 谷歌浏览器调试工具--查看请求资源的信息数据 ...

  9. ajax前后端通信的头部消息之请求头与响应头

    前后端在通信时,互相发送的消息包括头部消息和主体数据,而头部消息分为请求头和响应头两种. 请求头是前端发送,服务端获取. 响应头是服务端发送,前端获取. 设置请求头的规则: 请求头设置必须在open方 ...

最新文章

  1. 读自动驾驶激光雷达物体检测技术(Lidar Obstacle Detection)(3):Segmentation
  2. Starting MySQL... ERROR! The server quit without updating PID file 问题解决
  3. 配置kali linux
  4. python paramiko_python中的paramiko模块
  5. 1001 字符串“水”题(二进制,map,哈希)
  6. Maven 进行多环境配置,使用profile文件进行配置
  7. 《编程之美》读书笔记(十):“链表相交”扩展问题
  8. 【信号与系统|吴大正】3:离散系统的时域分析
  9. 酒店消防安全知识培训PPT模板
  10. 在pycharm中查看opencv版本
  11. MATLAB 去除图例legend外边框
  12. 浏览器下载ftp文件
  13. MyEclipse:详细使用教程
  14. 第5章 Monte Carlo蒙特卡洛方法
  15. Golang开源流媒体服务器(RTMP/RTSP/HLS/FLV等协议)
  16. 1. 微信公众号申请
  17. C#,ASP.NAT基于腾讯服务器实现自动发送邮件功能的几种方法及遇到的坑
  18. CAD中一个图形的多种画法
  19. small rtos51学习资料收集
  20. 如何完全卸载你之前版本的MySQL数据库??

热门文章

  1. NPR——卡通渲染(三)
  2. 土曼手表为什么出了问题?--百度百家
  3. 使用Office Deployment Tool离线安装Office 365
  4. 幽灵按钮html,什么是幽灵按钮?网站设计用户体验
  5. 令你有所触动的经典语录
  6. 食材净化器十大排名,食材净化器怎么选
  7. 散粉在哪个步骤用_散粉是在哪个步骤用
  8. itchat实现命令行聊天+记录聊天图片/表情
  9. Rust 12: 面向对象详解(struct + impl + trait)
  10. 安卓系统一键root