http是一种超文本传输协议(HyperText Transfer Protocol),是目前使用最广的网络传输协议。
http请求类型最常见的有 POST GET这两种类型,其他的类型还有:HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT
http请求报文由4部分组成:
1.请求行(request-line)
2.请求头(headers)
3.空格(blank line)
4.请求数据(request-body,可空)
通过curl命令发送一个简单请求,curl是一个利用url规则在命令行下工作的文件传输工具,支持http、https、ftp等多种协议,默认使用GET请求方式。
-
简单获取一个网页内容:curl -s https://www.bilibili.com 参数-s可不显示进度和错误信息
返回html形式的文档
-
curl -v url 可以显示通信过程,包括请求和响应的报文
在下方可看到请求报文:
请求的报文
不难发现,请求报文的请求行包括:1.类型(GET) 2.路径,默认为/ 3.协议及版本号http1.1。请求头有多个"以键值对的形式,注明向服务器发起请求的附加信息。"这里的是Host: User-Agent: Accept: 这三部分。
-
特定情况下我们需要自定义头部字段:
当然图中这样做没有意义
-
-X参数指定请求的动作,这里尝试发送POST请求,通过参数-d指定POST的内容,如果使用了-d,则默认为POST方式,可省略-X
无意义,仅做示范
一般服务器响应的报文结构如下:

响应的报文和请求的报文类似:
1.响应状态行
2.响应头
3.响应正文(响应体)
响应状态行由协议信息(http/1.1)、状态码(200)、描述(OK)组成
状态码为200说明请求处理成功并响应,状态码第一位有5种可能:
1xx:请求已经接收,需要继续处理
2xx:请求已经处理成功
3xx:重定向,需要进一步操作
4xx:请求错误无法实现
5xx:服务端错误
查看请求与相应信息还可以通过浏览器自带的开发者工具

网友评论