HTTP

  • 概念
    • 工作流程
  • 请求消息数据格式
    • 请求行
    • 请求头
    • 请求体(正文):
    • 请求字符串格式示例:
  • 响应消息数据格式
    • 响应行
    • 响应头
    • 响应空行
    • 响应体:传输的数据
    • 响应字符串示例

概念

Hyper Text Transfer Protocol 超文本传输协议
HTTP协议是用于从WWW服务器传输超文本到本地浏览器的传送协议。

注:HTTP协议永远是客户端发起请求,服务器回送响应。

  • 传输协议:定义了,客户端和服务器端通信时,发送数据的格式

  • 特点:

    • 基于TCP/IP的高级协议
    • 默认端口号:80
    • 于请求/响应模型的:一次请求对应一次响应
    • 状态的:每次请求之间相互独立,不能交互数据
  • 历史版本:

    • 1.0:每一次请求响应都会建立新的连接
    • 1.1:复用连接

工作流程

一次HTTP操作称为一个事务,其工作过程可分为四步:
1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。
2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。

请求消息数据格式

请求行

格式

`GET /login.html HTTP/1.1` // 请求方式 请求url 请求协议/版本

请求方式:TTP协议有7中请求方式,常用的有2种

  • GET:
    1. 请求参数在请求行中,在url后。
    2. 请求的url长度有限制的
    3. 不太安全
  • POST:
    1. 请求参数在请求体中
    2. 请求的url长度没有限制的
    3. 相对安全

请求头

客户端浏览器告诉服务器一些信息

请求头名称: 请求头值(键值对)

常见的请求头:

  • User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息
    * 可以在服务器端获取该头的信息,解决浏览器的兼容性问题

  • Referer:http://localhost/login.html
    告诉服务器,我(当前请求)从哪里来?
    作用:

    • 防盗链:
    • 统计工作:
  • 请求空行
    空行,就是用于分割POST请求的请求头,和请求体的。

请求体(正文):

封装POST请求消息的请求参数的

请求字符串格式示例:

         //请求行POST /login.html   HTTP/1.1//请求头Host: localhostUser-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateReferer: http://localhost/login.htmlConnection: keep-aliveUpgrade-Insecure-Requests: 1//请求空行//请求体username=zhangsan   

响应消息数据格式

服务器端发送给客户端的数据

响应行

  • 组成:协议/版本 响应状态码 状态码描述
  • 响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态。
    • 状态码都是3位数字
    • 分类:
      1. 1xx:服务器就收客户端消息,但没有接受完成,等待一段时间后,发送1xx多状态码
      2. 2xx:成功。代表:200
      3. 3xx:重定向。代表:302(重定向),304(访问缓存)
      4. 4xx:客户端错误。
      * 代表:
      * 404(请求路径没有对应的资源)
      * 405:请求方式没有对应的doXxx方法
      5. 5xx:服务器端错误。代表:500(服务器内部出现异常)

响应头

  • 格式:头名称: 值
  • 常见的响应头:
    1. Content-Type:服务器告诉客户端本次响应体数据格式以及编码格式
    2. Content-disposition:服务器告诉客户端以什么格式打开响应体数据
    * 值:
    * in-line:默认值,在当前页面内打开
    * attachment;filename=xxx:以附件形式打开响应体。文件下载

响应空行

响应体:传输的数据

响应字符串示例

         //响应行HTTP/1.1 200 OK//响应头Content-Type: text/html;charset=UTF-8Content-Length: 101Date: Wed, 06 Jun 2018 07:08:42 GMT//响应空行//响应体<html><head><title>$Title$</title></head><body>hello , response</body></html>

充电计划 -- http协议相关推荐

  1. WWDC 2015 苹果开发者计划许可协议

    请阅读下面的Apple开发者计划许可协议的条款和条件之前仔细下载或使用Apple软件或苹果服务.这些条款和条件构成您与苹果的法律协议. 苹果开发者计划许可协议 目的 你想用苹果软件(定义见下文)制定的 ...

  2. 充电桩服务器协议,充电桩与云服务器通信协议

    充电桩与云服务器通信协议 内容精选 换一换 华为云弹性负载均衡( Elastic Load Balance)将访问流量自动分发到多台云服务器,扩展应用系统对外的服务能力,实现更高水平的应用容错.华为云 ...

  3. CCPC网络赛前一周的充电计划

    CCPC大概还有一周左右的时间,在这一周内,要补充一些数学内容,避免出现像去年学长们一样出现的情况,不能出现在碰到相关题目的时候面面相嘘不知所以然. 所以这几天的计划大体是: 1. Lucas定理 : ...

  4. 【优化充电】基于matlab遗传算法求解电动汽车充电统一管理优化问题(含负荷功率曲线对比图及充电计划)【含Matlab源码 2300期】

    ⛄一.遗传算法求解电动汽车充电统一管理简介 0 引言 电动汽车是一个发展迅速的新兴产业, 它的优势在于性能良好.节能.环保, 近几年受到了科学研究人员和各国政府的广泛关注.但是, 伴随着电动汽车产生的 ...

  5. 充电计划 -- 浏览器工作流程、渲染流程

    浏览器工作流程(渲染流程) 前提 HTTP与TCP/IP区别 HTTP的三大风险 浏览器工作原理 HTTP工作原理 HTTPS工作原理 单向验证 双向认证 浏览器的渲染过程 参考博客:前端面试题必考( ...

  6. SD从零开始10 框架协议(Outline Agreement)—合同/计划协议

    一. SD中的合同/框架协议 (2015-05-24 21:41:50) 转载▼ 标签: sap sd 合同/框架协议 分类: ERP.MES与企业信息化 一. 合同有数量合同.价值合同.服务合同.主 ...

  7. USB-IF BC1.2充电协议解读

    BC1.2是USB2.0开始的一个使用Vbus=5V进行USB对接充电的一个协议,该协议由USB-IF协会在2010年10月发布,基于当时USB 2.0的Vbus供电,最大能供给电流为500mA,协议 ...

  8. 五、框架协议——计划协议

    1.计划协议优势: (1)一个计划协议可以取代一系列离散的采购订单和合同执行订单: (2)使用计划协议可以缩短系统处理次数,减少纸面作业: (3)因为计划协议已经确定了每一次送货的具体时间和数量,所以 ...

  9. 如何诱骗充电头PD输出?——PD快充协议受电诱骗方案CH224电路分享!

    现在主流手机都已经增加了PD快充协议,用来大幅度提升手机的充电效率,并且大多标配了PD快充充电头.这些充电头相当于一个智能充电器,在其功率允许的范围内,可以根据受电端的协议来约定自身对外输出多大的功率 ...

最新文章

  1. 为Visual Studio添加配色方案
  2. LeetCode刷题-3
  3. Docker网络相关
  4. 系统安装重装与优化:chapter6:使用常用软件与电脑外设
  5. DCMTK:OFStandard类中的ASCII /双转换方法的测试代码
  6. 基于semisync实现MySQL的主从半同步复制
  7. 数据恢复工具FinalData
  8. 大陆计算机科学家排名,韩家炜、张宏江2位校友在世界顶尖计算机科学家排名中分别位居华人科学家和中国大陆科学家之首...
  9. redis trib 常用命令
  10. vscode编写html代码颜色高亮,vs code配色与语法高亮自定义,vscode配色高亮
  11. ios 制作方形头像
  12. 云计算技术与应用 - 大数据与云计算
  13. PHP爆绝对路径方法总结帖
  14. kux格式怎么转换mp4,这里有妙招
  15. w10计算机运行特别卡,win10很卡?教你4大技巧,降低CPU占用,旧电脑运行如飞
  16. linux ls和cd命令详解,Linux基础cd、pwd和ls命令
  17. 动力电池系统介绍(一)——锂离子电池材料组成及其充放电过程
  18. JAVA读文件类之FileReader/InputStreamReader/BufferedReader
  19. 企业 dns 服务器搭建
  20. Arcg​is下DEM数据进行水文分析(二)

热门文章

  1. Non-static method ‘insert(T)‘ cannot be referenced from a static context
  2. python填充空值_python缺失值填充的几种方法
  3. 保定 机器人焊接加工厂_保定上下料机器人厂家
  4. java根据坐标在PDF指定位置添加文本
  5. php redis 抢票,Redis抢票先进先出
  6. 解决nginx 报错提示:rewrite or internal redirection cycle while internally redirecting to “/“
  7. TestNG教程四TestNG用例失败重试
  8. mysql自增不连续的问题
  9. [转]latex插入参考文献出现错误Missing $ inserted,Missing } inserted
  10. mail message 支持html,html格式邮件发送通过stmp