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下的查看格式