HTTP协议以及curl命令

本文介绍了HTTP协议的基本构成,并通过Chrome浏览器展示了如何查看请求和响应的细节。强调了使用curl命令来深入理解HTTP交互,提供了几个使用curl的示例,包括GET、POST请求及其头部信息设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一.HTTP协议简介
       关于网络协议,我们最常见的就是浏览器地址栏上的http,全称是HyperText Transfer Protocol,也就是超文本传输协议,是互联网上应用最广泛的一个网络协议,HTTP的作用是指导浏览器和服务器如何进行沟通,这是一个统一的标准,所有的万维网文件都要遵循这个标准。
        而相互通信,就必须有请求和响应,我们可以通过命令行发起请求以及响应,可以看到请求以及响应的反馈,也可以通过浏览器通过F12查看请求以及响应的详细信息。

二.HTTP的请求和HTTP响应

1.HTTP请求:

        指的是从客户端发起请求,服务器响应,主要包括三部分,有一部分可以为空,所以也可以是四部分:

       第一部分是请求方法URL协议/版本,通俗讲就是动词 路径 协议/版本,请求分为GET和POST,PUT PATCH DELETE HEAD OPTIONS目前我们主要掌握前两种,GET用来获取,而POST提供上传,在第一部分中,这两种请求的内容是不同的,下面举例,GET / HTTP1.1 或者 POST / HTTP1.1。
        第二部分是主要是由一些键值对以及Content-Type和Host以及User-Agent组成,Content-Type标注了第四部分的格式,当然有时候s第四部分是空的。
        第三部分是一个回车,用来和下一部分进行区分。
        第四部分就是要上传的数据。

        下面介绍一些如何在Chrome中查看HTTP的请求内容,点击F12点击NetWork左边的name栏或显示很多接口,我们点击需要查看的,就会看到三栏,General,ResponseHeaders,RequestHeader,点击qrquest,右边有view source,只有点击了这个键,才能看到我们熟悉的请求格式,如果有请求的s第四部分,下方有FormData和Payload,点击即可看到第四部分。

2.HTTP响应
        我们发起请求之后会得到一个响应,响应是对应于请求的,响应的格式也有四部分:
        第一部分是协议/版本号 状态码 状态解释。
        第二部分是键值对以及Content-length,content-type,这是标注第四部分格式的,且遵循MIME规范。
        第三部分依然是一个空格。
        第四部分可以很长很长,GET请求和POST请求对应的响应h可以一样,也可以不一样,第一部分的状态码是需要记住的,这是服务器对浏览器说的话,1开头的表示不常用,2开头的表示成功,3开头的表示不需要,4开头表示发起者错误,5开头表示服务器错误。

  在Chrome中查看响应和查看请求步骤类似,区别在于我们点中响应的接口,查看的是ResponseHeaders,不要忘记点击view source,这样我们才能看到我们能认识的格式,第四部分在preview或者response中查看。




三.curl命令的使用

        curl用来‘从server传输数据’或者‘传输数据到server’,支持多种协议(HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, DICT, TELNET, LDAP or FILE)。
        curl提供了大量有用的技巧像  proxy support, user authentication, FTP upload, HTTP post, SSL connections, cookies,  file  transfer  resume and more。
        curl由libcurl支持完成transfer-related(传输相关)的功能。

        为了更好的了解HTTP请求与响应,我们可以用curl命令进行学习。

        curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl可以祝一臂之力。

      curl的格式是curl 请求和参数,在课上我们主要用到了

      curl -s -v -H "xiedaimala: xxx" -- "https://www.baidu.com"


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


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


      这三条指令,我们可以看到,需要上传时候我们要加POST参数,以及上传的信息,而后面的网址是我们要请求的服务器,在我们发起请求之后,在命令行窗口中可以看到请求和响应。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值