HTTP

  • 一、HTTP协议的具体格式。
    • 1、基本格式
    • 2、使用抓包工具观察格式
      • 请求
        • 首行
          • 首行中的方法(HTTP1.1)
        • 请求头(header)
          • Host/Connecion/User-Agent
          • Cookie
          • Referer
      • 响应
        • 首行
          • 状态码
        • 响应头(header)
          • Content-Type/Content-Length
          • 常见的Content-Type
          • Set-Cookie
      • Cookie与Set-Cookie(面试)
        • Cookie与Session
  • 二、GET和POST的区别

一、HTTP协议的具体格式。

1、基本格式


不是每个请求和响应都具有以上每个部分

2、使用抓包工具观察格式

请求

我们需要使用抓包工具 fiddler,才能大概分析出HTTP协议中具体的格式。fiddler 这个抓包工具不会的话建议去B站看看,很多教程。
然后我们先简单抓个包(进入csdn)说一下请求中的大概格式:

首行

首行中的方法(HTTP1.1)

POST、GET、HEAD、PUT、OPTIONS、DELETE、TRACE、CONNECT
常用的就是 POST 和 GET 方法

请求头(header)
Host/Connecion/User-Agent

Cookie

Cookie是由HTTP服务器设置的,保存在浏览器中,但HTTP协议是一种无状态协议,在数据交换完毕后,服务器端和客户端的链接就会关闭,每次交换数据都需要建立新的链接,所以我们设置了Cookie。

就像我们去超市买东西,没有积分卡的情况下,我们买完东西之后,超市没有我们的任何消费信息,但我们办了积分卡之后,超市就有了我们的消费信息。cookie就像是积分卡,可以保存积分,商品就是我们的信息,超市的系统就像服务器后台,http协议就是交易的过程。

Referer

当我随便点击一篇博客进入后,再次抓博。

有些包中会有Referer,它代表的意思就是当前这个页面是从哪个网站跳转过来的。
有同学发现了,GET方法中很少有请求正文(也就是body)。现在我们来看下响应的包长啥样

响应

首行

状态码


常见的状态码:
200 访问成功
302 重定向,例如登陆成功后跳转页面.而header中有些会有Laction字段表示接下来要跳转带那里
403 没有权限
404 资源没找到,一般是URL写错了
500 服务器出现了问题

响应头(header)
Content-Type/Content-Length


让我们来看看响应正文


它的格式取决于Content-Type

常见的Content-Type

x-www-from-urlencoded : 按照类似于(查询字符串)query string格式
text/html:body是按照html的格式来组织的
image/gif:body是一个gif
text/plain:纯文本结构
text/css:css格式数据
image/jpg:body就是一个jpg格式的图片
application/javascript:body就是js文件

Set-Cookie

我将记录删除,重新登陆gitee。

HTTP响应中,有一个/多个Set-Cookie字段 Set-Cookie字段里面的内容就会被浏览器保存下来
浏览器保存好服务器返回的Cookie后,如果下次再访问这个服务器,此时请求中就会自动加上Cookie这个字段,字段里的值就是之前从服务器这边返回的值

Cookie与Set-Cookie(面试)

我们来分析一下:
Cookie是什么?
客户端存储的字符串,字符串内的结构是键值对结构;
Cookie来自哪里?
服务器通过Set-Cookie字段返回的,一般在用户登录成功后返回;
Cookie干什么?
前面我们说的HTTP是无状态协议,且同一时刻会有大量的用户访问,为了区分每个用户,所以添加Cookie能够识别用户且区分不同的用户;
Cookie到哪里去?
后续客户端给服务器发送请求,会自动加上Cookie字段。

Cookie与Session

Cookie中有一个sessionid,而服务器中以键值对的形式存储了Session。
例如sessionid=123,当客户端发送请求给服务器时,服务器解析出Cookie中的sessionid=123,即key的值是123,通过get(key)就可以得到一个value,这个value里就有对象,对象里就包含了你在这个网站的信息。比如你登录了抖音成人版,然后你的浏览记录、收藏、喜欢就会返回到你到手机上。(这只是一个例子,手机app应该不是根据Cookie来返回的。但是原理应该大差不差)

二、GET和POST的区别

  • 本质上没有区别
  • GET请求是放到URL(网址)中的query string中的,POST数据是放到body中的。
  • GET一般用于取数据,POST一般用于提交数据(注意修饰词一般
  • GET能够被浏览器缓存,而POST不行

后续有一篇关于HTTP为什么要升级HTTPS的博客,欢迎来访
HTTP升级HTTPS

HTTP协议的基本格式相关推荐

  1. 计算机网络数据分析报告,贵州大学计算机网络实验报告-实验四-分析IP协议数据包格式...

    贵州大学计算机网络实验报告-实验四-分析IP协议数据包格式 (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 贵州大学GUIZHOU UN ...

  2. 【FFmpeg】ffmpeg 命令查询二 ( 比特流过滤器 | 可用协议 | 过滤器 | 像素格式 | 标准声道布局 | 音频采样格式 | 颜色名称 )

    FFmpeg 系列文章目录 [FFmpeg]Windows 搭建 FFmpeg 命令行运行环境 [FFmpeg]FFmpeg 相关术语简介 ( 容器 | 媒体流 | 数据帧 | 数据包 | 编解码器 ...

  3. 【音视频零基础入门 1】视频播放器原理、流媒体协议、封装格式、视频编码、音频编码

    [音视频零基础入门 1]视频播放器原理.流媒体协议.封装格式.视频编码 一.视频播放器原理 1.1 解协议 1.2 解封装 1.3 解码 1.4 视音频同步 二.流媒体协议 三.封装格式 四.封装格式 ...

  4. HTTP协议报文基本格式

    HTTP协议报文基本格式     HTTP协议(Hypertext Transfer Protocol――超文本传输协议),浏览器端(客户端)向WEB服务器端访问页面的过程和HTTP协议报文的格式. ...

  5. ICMP协议及报文格式

    摘自:<深入理解计算机网络> 王达著 机械工业出版社 相关知识链接 1. IPV4数据报头部格式请点击这里 2. IPv6数据报头部格式请点击这里 3. IPv4数据报的封装与解封装请点击 ...

  6. 计算机网络考试数据包格式,计算机网络实验 分析ICMP协议数据包格式.doc

    计算机网络实验 分析ICMP协议数据包格式 实 验 报 告 实验课程名称 计算机网络实验 实验项目名称 分析ICMP协议数据包格式 年 级 08 专 业 电子信息科学与技术 学生姓名 郎子龙 学 号 ...

  7. HTTP协议的请求格式解析

    HTTP协议是一个使用较多的应用层协议,它是一个请求/响应式的一个协议,就是我客户端给你发一个请求,你客户端需要返回给我一样响应.首先我们来看一下HTTP协议的请求格式. HTTP请求格式: HTTP ...

  8. FFmpeg之视频封装格式、流媒体协议、视频编解码协议和传输流格式、时间戳和时间基、视频像素数据

    通用视频分析工具:Mediainfo.Elecard StreamEye(视频编码分析工具); 视频封装格式: ********************MP4****************** MP ...

  9. dubbo协议报文消息格式

    一般协议头关键因素 1,协议用途标志 2,协议id 3,消息长度 4,协议类型(请求/响应) 5,响应状态 dubbo默认采用netty进行网络传输,协议中对字节流的处理在com.alibaba.du ...

  10. Modbus协议———功能码及格式简述

    一:Modbus寄存器种类说明 1:线圈状态 输出端口,可设定端口的输出状态,也可以读取该位的输出状态: 2:离散输入状态 输入端口,通过外部设定改变输入状态,可读但不可写: 3:保持寄存器 控制器运 ...

最新文章

  1. Win8总提示安装FLASH插件怎么办?
  2. 从HashiCorp Nomad对上百万容器进行调度所学到的经验
  3. 你怎样看待比自己强的人?
  4. 数据仓库中的模型设计(转)
  5. python的from_bytes属性_Python parse.quote_from_bytes方法代碼示例
  6. JavaScript中调皮的undefined
  7. 【Python】keras使用Lenet5识别mnist
  8. Android TV开发总结(二)构建一个TV Metro界面(仿泰捷视频TV版)
  9. 前端页面,引入PingFang SC(苹方简)字体
  10. 华成英-模拟电子技术P9 静态工作点的稳定 笔记
  11. 武汉科技大学计算机课程设置,武汉科技大学课程建设管理办法
  12. Dreamweaver中如何设定文字——大小、字体、颜色
  13. 文王八卦圖와 易經組織
  14. 织梦php模板安装教程,dedecms织梦网整站模板通用安装教程(图文)
  15. Android基础知识(二十):Notification、提醒式通知(横幅)踩坑与通知界面设置跳转
  16. 服务器域共享文件夹,访问域共享文件夹
  17. 【本人秃顶程序员】美女程序员观点:程序员最重要的非编程技巧
  18. 如何将网站转化为桌面应用
  19. 图的最短路径问题(C++)
  20. 郑州大学计算机系王院长,郑州大学徐明亮教授、北京航天航空大学牛建伟教授来校开展学术交流...

热门文章

  1. 基于VUE的前端架构设计
  2. STM32F103C8T6 硬件SPI+DMA 控制WS2811
  3. 西门子PLC_s7-200免费学习视频教程
  4. STM32串口通信基本原理
  5. [CTF]RAR加密原理
  6. 逻辑函数代数法化简(二)
  7. Linux下运行黑客帝国屏保
  8. html5车牌效果,车牌自编效果预览软件【京牌】
  9. ba无标度网络python_python绘制BA无标度网络示例代码
  10. numpy数组打印格式设置