http请求报文和相应报文详解

Http协议的特点

HTTP协议的特点

  • 基于请求/响应模型的协议。
    • 请求和响应必须成对;
    • 先有请求后有响应。
  • 简单快捷
    • 因为发送请求的时候只需要发送请求方式和请求路径即可
  • HTTP协议默认的端口:80
    • 例如:http://www.baidu.com:80

Http协议的版本

  • HTTP/1.0,发送请求,创建一次连接,获得一个web资源,连接断开。
  • HTTP/1.1,发送请求,创建一次连接,获得多个web资源,连接断开。

HTTP协议有两种报文格式:

  • 请求报文:由客户端向服务器端发出的报文。
  • 响应报文:从服务端到客户端的报文。

Http协议详解

Http请求报文详解

HTTP请求报文:由客户端向服务器端发出的报文。

HTTP请求报文格式:包含请求行、请求头、空行、请求体 四个部分

1568247750782

请求行
例如:POST /web01/login.html HTTP/1.1
请求行必须在HTTP请求格式的第一行。
请求行格式:请求方式 资源路径 协议/版本

请求方式:协议规定7种,常用两种:GET和POST
	GET请求:
		将请求参数追加在URL后面,不安全。例如:login.html?username=tom&password=1234
		URL长度限制GET请求方式的数据大小。
		没有请求体
	POST请求
		请求参数显示请求体处,较安全。
		请求数据大小没有显示。
	只有表单设置为method=”post”才是post请求.其他的都是get请求。
	常见GET请求:地址栏直接访问、<a href=””>、<img src=””> 等
			
请求头

请求头: 描述了客户端向服务器发送请求时使用的http协议类型,所使用的编码,以及发送内容的长度,referer,等等。

请求头也是用的键值对key:value

常见请求头描述
Referer浏览器通知服务器,当前请求来自何处。如果是直接访问,则不会有这个头。常用于:防盗链
Cookie与会话有关技术,用于存放浏览器缓存的cookie信息。
User-Agent浏览器通知服务器,客户端浏览器与操作系统相关信息
请求体
通常情况下,只有post请求方式才会使用到请求体,请求体中都是用户表单提交的数据,每一项数据都使用键值对key=value,多组值使用&相连。
	例如;username=tom&password=1234
Http请求报文演示
  • 创建页面,编写“login.html”,并提供表单,分别设置表单的提交方式为:get和post。将表单提交位置设置成#,表示提交到当前表单。

    1568247785301

<form action="#" method="post">
    用户名:<input type="text" name="username" value=""/> <br/>
    密 码:<input type="text" name="password" value=""/> <br/>
    <input type="submit" />
</form>

观看下图,我们采用GET请求方式、POST请求方式的抓包结果:(Chrome浏览器)

  • GET请求抓包数据:

    1568247804983

  • POST请求抓包数据:

    1568247881730

2.2 Http响应报文详解

响应报文:从服务端到客户端的报文。

HTTP响应报文格式:响应行、响应头、空行、响应体 四个部分

1568247904345

响应行
例如:HTTP/1.1 200 OK
格式:协议/版本 状态码  状态码描述
	状态码:服务器与浏览器用于确定状态的固定数字号码
		200 :请求成功。
		302 :请求重定向。
		304 :请求资源没有改变,访问本地缓存。
		404 :请求资源不存在。通常是用户路径编写错误,也可能是服务器资源已删除。
		500 :服务器内部错误。通常程序抛异常。
		
响应头

响应头: 用来描述服务器回给客户端浏览器的content的一些描述,例如: 我是什么服务器,我返回的是啥编码,我返回的内容有多长等等

响应头也是用的键值对 key:value

常见请求头描述
Location指定响应的路径,需要与状态码302配合使用,完成跳转。
Content-Disposition文件下载的时候使用。通过浏览器以下载方式解析正文
Set-Cookie与会话相关技术。服务器向浏览器写入cookie
Refresh定时刷新
响应体

响应体,就是服务器发送给浏览器的正文。

<!DOCTYPE html>
<html >
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="#" method="post">
        用户名:<input type="text" name="username" value=""/> <br/>
        密 码:<input type="text" name="password" value=""/> <br/>
        <input type="submit"/>
    </form>
</body>
</html>
Http响应报文演示

如下图,我们提供的响应的抓包结果(Chrome浏览器)

1568247961815

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值