http协议
什么是hhtp协议:
HTTP协议(超文本传输协议)因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。
HTTP 和HTTPS 的区别:
http是超文本传输协议 而https则是ssl加密协议,所以https比http更加安全。
http的端口号是80端口,而https的端口号则是443端口号。
http不需要证书,https由于使用了ssl协议,ssl协议是需要证书验证服务器身份的。
在osi参考模型中,http工作在应用层,而http工作在传输层。
使用浏览器和抓取http的流量包:
这里抓取了百度的 请求头 和 响应头。
使用burp suite抓取微博的包:
分析HTTP请求包:
客户端发出的请求包分为三个部分:请求行、请求报头、空行、请求正文。
而请求行的格式又分为:
Method:表⽰请求⽅法代码 Request-URI:是⼀个统⼀资源标识符 HTTP-Version:表⽰请求的HTTP协议版本 CRLF:表⽰回车和换⾏。
请求方法为 GET 请求页面信息 返回实体主体。
POST 提交数据 或上传表单。数据被包含在请求体中。
HEAD 快速请求,返回的响应中没有具体内容。
PUT 存储请求 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE 删除请求 请求服务器删除某一资源。
常见的请求报头:
Host: 请求的服务器地址
User-Agent: 包含发出请求的用户信息。
Accept: /:表示什么都可以接收。
Accept:image/gif:表明客户端希望接受GIF图像格式的资源;
Accept:text/html:表明客户端希望接受html文本。
Accept: text/html, application/xhtml+xml;q=0.9, image/*;q=0.8:
表示浏览器支持的 MIME 类型分别是 html文本、xhtml和xml文档、所有 的图像格式资源。
Referer: 告诉服务器 我是从哪个页面链接过来的。
Cookie: 身份凭证。
分析HTTP响应包:
HTTP 响应包由: 状态行、消息报头、响应正文。
状态行格式:
HTTP-Version表⽰服务器HTTP协议的版本
Status-Code表⽰服务器发回的响应状态代码
Reason-Phrase表⽰状态代码的⽂本描述。
状态码:
2** 成功 200
3** 重定向 ,资源(网页等)被永久转移到其它URL
4** 客户端错误,无法完成请求
400 客户端请求语法错误,服务器不理解
403 服务器拒绝执行客户端发送的请求
404 服务器无法根据客户端的请求找到资源(网页)。
5** 服务器错误
500 服务器不支持请求的功能,无法完成请求。
503 服务器当前不能处理请求,一段时间可能恢复正常。
响应头 消息报头:
server : WEB服务器名称