curl 请求日志_HTTP入门(一):在Bash中curl查看请求与响应

HTTP入门(一):在Bash中curl查看请求与响应

本文简单总结HTTP的请求与响应。

本文主要目的是对学习内容进行总结以及方便日后查阅。

详细教程和原理可以参考HTTP文档(MDN)。

本文版权归马涛涛所有。

本文所引用的图片和文字版权归原作者所有,侵权删。

如有错误请在下方评论区指出,欢迎积极讨论。

服务器与浏览器的交互

浏览器负责发起请求

服务器在 80 端口接收请求

服务器负责返回内容(响应)

浏览器负责下载响应内容

HTTP协议 的作用就是指导浏览器和服务器如何进行沟通。

请求

使用curl -s -v -H "Mtt: xxx" -- https://www.baidu.com来在Bash里创造一个请求,并得到响应。

-s:简短的信息

-v:> 表示请求, < 表示响应

-H:添加一个响应头

请求与响应截图:

请求内容:

> GET / HTTP/1.1 GET方法发送请求,获取默认根目录,使用http1.1协议

> Host: www.baidu.com 主机

> User-Agent: curl/7.58.0 用curl7.58这个东西发送的请求

> Accept: */* 接受服务器返回的任何内容

> Frank: xxx

> 有一个回车

不同参数测试

curl -X POST -s -v -H "Frank: xxx" -- "https://www.baidu.com"测试

请求的内容为

POST / HTTP/1.1 因为-x改成了post

Host: www.baidu.com

User-Agent: curl/7.54.0

Accept: */*

Frank: xxx

curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- https://www.baidu.com测试

请求的内容为

POST / HTTP/1.1

Host: www.baidu.com

User-Agent: curl/7.54.0

Accept: */*

Frank: xxx

Content-Length: 10 内容长度为是10

Content-Type: application/x-www-form-urlencoded

1234567890

"-d 1234567890":我要往百度上传数据1234567890

Content-Length: 10 : 内容长度为是10

Content-Type:我要上传内容的格式

Get是获取,只看浏览器内容,不做其他的事

post是发表,上传的意思。例如说我要注册登录,就把数据写在-d里面,然后请求的时候就直接上传了。

总结:请求的格式

1 动词 路径(HTTP规定必须以/开头) 协议/版本

2 Key1: value1

2 Key2: value2

2 Key3: value3

2 Content-Type: application/x-www-form-urlencoded

2 Host: www.baidu.com

2 User-Agent: curl/7.54.0

3 (永远是回车,用来区分二四部分)

4 要上传的数据

请求最多包含四部分,最少包含三部分。(也就是说第四部分可以为空)

第三部分永远都是一个回车(n)

动词有 GET POST PUT(整体更新) PATCH(部分更新) DELETE(删除一些东西) HEAD OPTIONS 等

这里的路径包括「查询参数」,但不包括「锚点」(服务器不看锚点,只看路径)

如果你没有写路径,那么路径默认为 /

第 2 部分中的 Content-Type 标注了第 4 部分的格式

响应

上面三个请求示例,前两个请求对应的响应分别为

HTTP/1.1 200 OK

Accept-Ranges: bytes

Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform

Connection: Keep-Alive

Content-Length: 2443

Content-Type: text/html(百度返回的时候百度的数据长度和内容的格式)

Date: Tue, 10 Oct 2017 09:14:05 GMT

Etag: "5886041d-98b"

Last-Modified: Mon, 23 Jan 2017 13:24:45 GMT

Pragma: no-cache

Server: bfe/1.0.8.18

Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/

HTTP/1.1 302 Found

Connection: Keep-Alive

Content-Length: 17931

Content-Type: text/html

Date: Tue, 10 Oct 2017 09:19:47 GMT

Etag: "54d9749e-460b"

Server: bfe/1.0.8.18

后面太长,省略了……

GET 请求和 POST 请求对应的响应可以一样,也可以不一样

响应的第四部分可以很长

响应的格式

1 协议/版本号 状态码 状态解释

2 Key1: value1

2 Key2: value2

2 Content-Length: 17931

2 Content-Type: text/html

3

4 要下载的内容

• 状态码是服务器对浏览器说的话,详情请看维基百科HTTP状态码

• 1xx 不常用

• 2xx 表示成功 200成功(get) 204创建成功(post)

• 3xx 表示滚吧 301(以前的人搬走了,搬去哪里会在第二部分location的一个key:value里该诉你) 302(外出了,过几天才会回来表示服务器临时不在)

• 4xx 表示你丫错了(肯定是访问者出错,比如说你输入了错误的地址)

• 5xx 表示好吧,我错了(表示服务器错了)

• 第 2 部分中的 Content-Type 标注了第 4 部分的格式

• 第 2 部分中的 Content-Type 遵循 MIME 规范

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/411311.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

下载android版趣步最新版,趣步下载2021安卓最新版_手机app官方版免费安装下载_豌豆荚...

程序需要调用以下重要权限&#xff1a;请求安装文件包- 允许程序请求安装文件包获取额外的位置信息提供程序命令- 允许程序访问额外的定位提供者指令修改或删除您的SD卡中的内容- 允许程序写入外部存储,如SD卡上写文件读取手机状态和身份- 访问电话状态读取您的SD卡中的内容- 允…

[html] 使用button当按钮和使用div当按钮有什么区别?

[html] 使用button当按钮和使用div当按钮有什么区别&#xff1f; button具有默认样式 button在表单中具有默认的提交事件 button具有disabled属性可以禁用个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨…

js基础---js组成以及基本认知

为什么要学js&#xff1f; 因为js无所不能&#xff0c;早期js是用来进行表单校验的&#xff1b;后来js误入歧途&#xff0c;用于实现小广告&#xff1b;再后来&#xff0c;ajax让js火了起来&#xff0c;可以实现无刷新更新数据&#xff0c;例如百度地图 也可以实现炫酷的网页特…

Virtools脚本语言(VSL)教程 - 枚举

enum关键字指定了一个枚举类型。枚举类型是一种用户定义的类型&#xff0c;由一套叫做计数器(enumerator)的赋之以名称的常量组成。缺省情况下&#xff0c;第一个计数器有一个为0的值&#xff0c;每个后续的计数器都比前一个的值更大(除非你显示地为特定计数器指定一个值)。 定…

入门指南_激光切管快速入门指南

本文是有关管材和激光管切割的思考的快速入门指南。要求首先&#xff0c;需要确定对管材尺寸的要求。考虑以下问题&#xff1a;将要加工的管材最大和最小直径是多少&#xff1f;切割这些管材需要多大功率&#xff1f;它们是薄壁还是厚壁&#xff1f;原材料和成品零件的长度是多…

[html] 百度、淘宝、京东移动端首页秒开是如何做到的?

[html] 百度、淘宝、京东移动端首页秒开是如何做到的&#xff1f; 我猜是&#xff0c;服务端渲染&#xff0c; 解决首屏加载慢的方式&#xff0c;个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目…

android+button+不可点击置灰,android:tint 给imagebutton着色 按钮灰色

直接在xml进行颜色变化&#xff0c;使用三目运算符。比如要给Imagebutton&#xff0c;在某个条件时变成灰色&#xff0c;其他变成OK色&#xff0c;直接在XML就搞定了&#xff1a;android:id"id/connect_ok_btn"android:layout_width"44dp"android:layout_h…

页面调试

1.network all 所有请求 XHR ajax请求 WS websocket请求 转载于:https://www.cnblogs.com/gzl180110/p/10930802.html

六步使用ICallbackEventHandler实现无刷新回调

ICallbackEventHandler存在于System.Web.UI中&#xff0c;我们先做一个非常简单的例子来试用一下。 第一步&#xff0c;在VS2005中建立一个新的WEB窗件。 第二步&#xff0c;在ASPX中&#xff0c;放上一段HTML代码(如下)&#xff1a; 1<body>2<form id"form1&…

hexo 环境变量_小白使用 Github + Hexo 从 0 搭建一个博客

最近有几位同学在公众号后台留言问我的博客站是怎么建站的&#xff0c;思来想去&#xff0c;还是写一篇从 0 开始吧。前置准备我们先聊一下前置准备&#xff0c;可能很多同学一听说要自己搭一个博客系统&#xff0c;直接就望而却步。不得有台服务器么&#xff0c;不得搞个数据库…

[html] 说说js代码写到html里还是单独写到js文件里哪个好?为什么?

[html] 说说js代码写到html里还是单独写到js文件里哪个好&#xff1f;为什么&#xff1f; js和html还是分开比较好&#xff0c;一是各功能独立&#xff0c;界面比较干净&#xff0c;二是方便管理&#xff0c;关系清晰&#xff0c;三是方便引用&#xff0c;一些公共js独立导入可…

android service交互,Android Activity与Service的交互方式

参考: http://blog.csdn.net/gebitan505/article/details/18151203实现更新下载进度的功能1. 通过广播交互Server端将目前的下载进度&#xff0c;通过广播的方式发送出来&#xff0c;Client端注册此广播的监听器&#xff0c;当获取到该广播后&#xff0c;将广播中当前的下载进度…

[转帖]AjaxControlToolkit.TabContainer 自定义样式续

Tabs控件其实是一个容器控件TabContainer和面板控件TabPanel。TabContainer控件用于包含TabPanel。TabPanel控件用于显示。下面来看一个示例&#xff1a;1)在VS2005中新建一个ASP.NET AJAX-Enabled Web Project项目工程&#xff0c;命名为Tabs。2)在Default.aspx页面上添加一个…

NodeMailer

刚开始学习MEAN, 搞个插件发个邮件。 NodeMailer貌似出镜率很高&#xff0c;用用。 https://nodemailer.com/smtp/ 先申请了个个人的Outlook的邮箱&#xff0c;测试了一把&#xff0c;顺利通过。耶&#xff0c;好激动。 const nodeMailer require(nodemailer);let transporte…

[html] 写一个布局,它的宽度是不固定的100%,如果让它的宽度始终是高度的一半呢?

[html] 写一个布局&#xff0c;它的宽度是不固定的100%&#xff0c;如果让它的宽度始终是高度的一半呢&#xff1f; <div class"ratio" style"--ratio: 0.5;"></div>.ratio {background-color: salmon;position: relative; }.ratio::before {…

c++ using 前置声明_每日优鲜前置仓模式的配货优化方案案例介绍

大渔导读&#xff1a;2019 年零售业供应链最佳实践大奖——银奖 基于每日优鲜前置仓模式的配货优化方案案例&#xff1b;1. 背景介绍&#xff1a; 每日优鲜成立于 2014 年 11 月&#xff0c;是专注于优质生鲜的移动电商&#xff0c;已在北上广深等全国 10 个核心城市建立“城市…

lg gw880 qq2011 android beta4版,LG GW880评测:CMMB天线、细节设计

机身侧面的银色边框与黑色的正面形成了鲜明的对比。不同于大部分的手机&#xff0c;LG GW880把电源/锁机键放到了机身左侧&#xff0c;而且还多了一个返回键&#xff0c;所以机身侧面设置了比较多的按键&#xff0c;设计比较复杂。机身右侧是拍照键、音量键以及数据线接口&…

数据库的事务,隔离级别和3大范式

*数据库事务的想关操作 1.事务开始:开始是一个事物,作为回滚的标记 2,回滚 rollback :回滚到上一个事务开始的地方, 或者回滚到某个存档点,期间没被 commit ; 操作都会被撤回 3.提交commit ;将事务中所有操作提交到数据库中 4.存档点:设置存档点方便回滚 *开始事务 ........确认…

IE6/IE7/Firefox浏览器不兼容原因及解决办法

浏览器的不兼容&#xff0c;大家肯定都是深恶痛绝的&#xff0c;往往我们只是去做修补&#xff0c;却忘了更重要的事情&#xff0c;那就是追溯根源&#xff0c;避免类似的不兼容再次出现。在下不才&#xff0c;归纳几点html编码要素&#xff0c;望能指点各位&#xff1a; 1.文字…

[html] 如果要开发一个在超级大屏上显示的可视化页面,你首先要考虑什么?

[html] 如果要开发一个在超级大屏上显示的可视化页面&#xff0c;你首先要考虑什么&#xff1f; 适配 清晰度个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题