http入门简介:请求、响应和 curl 命令

一、http 请求

http请求其实就是客户端发送至服务器的请求信息

(1)动词 路径 协议/版本

例如:GET /sample.jsp HTTP/1.1
常用动词: GET(信息获取) POST(提交数据) PUT(更新数据) PATCH(部分更新) DELETE(删除)

(2)请求头(Request Header)

标准格式:Key1: value1
请求头包含许多有关的客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言,请求正文的长度等。常见例如:
Content-Length: 10
Content-Type: application/x-www-form-urlencoded(标注了第 4 部分的格式)
Host: www.baidu.com
User-Agent: curl/7.54.0

(3)一个回车(\n)

请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文。

(4)请求正文(可以为空)

请求正文中可以包含客户提交的查询字符串信息,如:username=jinqiao&password=1234

如何用Chrome开发者工具查看 HTTP 请求内容

1、在Chrome中按F12打开开发者工具(mac为option+command+i),然后选择Network


图1

2、地址栏输入网址、在 Network 点击,查看 request,点击「view source」


图2.png

3、然后就能看到请求的前三部分了
图3

4、如果有请求的第四部分,那么在 FormData 或 Payload 里面可以看到

二、http 响应

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

如:HTTP/1.1 200 OK
状态码由3位数字组成,表示请求是否被理解或被满足。常见状态码:

  • 1xx: 信息—表示请求已接收,继续处理。
  • 2xx: 成功—表示请求已经被成功接收、理解、接受。
  • 3xx: 重定向—要完成请求必须进行更进一步的操作。
  • 4xx: 客户端错误—请求有语法错误或请求无法实现。
  • 5xx: 服务器端错误—服务器未能实现合法的请求。
(2)响应头(Response Header)

标准格式:Key1: value1,如:
Content-Length: 2443
Content-Type: text/html
Date: Tue, 10 Oct 2017 09:14:05 GMT

(3)一个回车(\n)

和请求类似,响应头和响应正文之间是一个空行。

(4)响应正文(可以很长很长很长)

响应正文对应浏览器要下载的内容

如何用Chrome开发者工具查看 HTTP 响应内容

1、打开 Network
2、输入网址,选中第一个响应,点击 view source
3、看到响应的前两部分


图4

4、点击 Response 或者 Preview,查看响应的第 4 部分

三、基本 curl 命令

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

-X/--request <command> : 指定什么命令
-d/--data <data>: HTTP POST方式传送数据
-s/--silent: 静默模式。不输出任何东西
-v/--verbose: 用于打印更多信息,包括发送的请求信息,调试脚本时特别有用
-H/--header <line>: 自定义头信息传递给服务器

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,306评论 19 139
  • 转载自:http://www.cnblogs.com/txw1958/archive/2013/01/19/286...
    php_bruce阅读 6,802评论 1 5
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong阅读 22,664评论 1 92
  • 一、什么是CURL? cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、...
    伊Summer阅读 5,077评论 0 4
  • cURL是一个利用URL语法规定来传输文件和数据的工具,支持很多协议和选项,如HTTP、FTP、TELNET等,能...
    司马东阳阅读 5,279评论 0 6