1.Http协议全称:Hypertext Transfer protocol 超文本传输协议;最初发明它是用来在浏览器与web服务器之间传输超文本信息的;泛义上属于应用层协议;(现在手机应用于服务器之间;一个服务器系统与另外一个服务器系统之间的http协议)
2.Http版本:0.9,1.0,1.1,1.2;目前广泛使用的是http/1.1
3.http与html
- HTML是医用来定义网页的文本语言
- Http是网络上传输信息的协议
- 京东买手机(手机实际的内容相当于HTML,要传输的内容;包装到快递纸盒并且运输的方法相当于HTTP)
4.http请求
- 请求行
- 请求头
- 空行
- 消息体
- Json
- Xml
- www-form-urlencoded
例:
GET /index.html HTTP/1.1
Host:www.example.com - 请求的主机
POST / HTTP/1.1
Host:foo.com
Content-Type:application/x-www-form-urlencode - 有消息体的话;必须有字段告诉你消息体的格式
Content-Length:13 - 字节
say=Hi&to=Mom
注意:请求头可以一个或是三个或是多个;消息体可以没有,如果没有消息体也可以没有空行
5.HTTP请求方法
- GET:请求获取 Request-URL所标识的资源(获取资源信息)
- POST:在Request-URL所标识的资源后附加新的数据(添加新数据)
- HEAD:请求获取由Request-URL所标识的资源的响应消息报头
- PUT:请求服务器存储一个资源,并用Request-URL作为其标识(更新资源信息)
- DELETE:请求服务器删除Request-URL所标识的资源(删除信息)
注意:GET请求一般不需要消息体
6.HTTP响应
包含内容:
- 状态行
- 响应头
- 空行
- 消息体
例:
HTTP /1.1 200 OK --- 协议版本+状态码+状态码文本描述
Date: Mon,23 May
Content-Type:text/html;charset=UTF-8
Content_Encoding:UTF-8
Content-Length:138
Last-Modified:Wed,08
Server:Apache
ETage:"3f80f"
Accept-Ranges:bytes
Connection:close
<html>
<head>
.
.
</html>
7.常见的状态码:
百度搜一下::::
1开头的表示请求被接收
2开头的表示成功:200(OK)
3开头的表示已经换地址了,重定向请求
4开头的表示客户端发生错误:400(客户端错误)、401(用户需要登陆验证)、403(用户验证通过但是没有操作权限)、404(请求失败,找不到资源)
5开头的表示服务端问题(一般为系统BUG):500(服务端bug)
8.请求消息体与响应消息体的格式相同
9.fiddler介绍(可以抓浏览器的包;Python程序的包)
启动后Fiddler会把自己作为http代理(默认系统代理);查看代理端口:
tool--options--Connetcions下查看默认8888
查看系统代理:网络和Internet--代理
Inspectors下的查看格式