首先,有个基本的概念
HTTP协议是基于TCP/IP协议模型来传输信息的
点击了解HTTP详细信息 点击了解什么是IP地址 点击了解DNS HTTP协议用于在Internet上发送和接收消息,HTTP协议是一种请求-应答式的协议,客户端发送一个请求,服务器返回该请求的应答,HTTP协议使用可靠的TCP连接,默认端口是80.在HTTP中,Client/Server之间的会话总是由客户端通过建立连接和发送HTTP请求包初始化,服务器不会主动联系客户端或要求与客户端建立连接,浏览器和服务器都可以随时中断连接.
HTTP请求
先说一下HTTP请求,http请丢是由请求行(requestline)、请求头部(header)、空行和请求数据4个部分组成, 请求数据可以有,也可以没有,但空行是不能省略的,用以将请求头和请求内容分开.
1.请求行:
请求行分为三个部分:请求方法、请求地址和协议版本.
请求方法: HTTP/1.1 定义的请求方法有8种:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE。最常的两种GET和POST,如果是RESTful接口的话一般会用到GET、POST、DELETE、PUT。
请求地址: URL:统一资源定位符,是一种标志资源位置的方法。
协议版本: 协议版本的格式为:HTTP/主版本号.次版本号,常用的有HTTP/1.0和HTTP/1.1
2.请求头:
请求头部为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔. 3.请求数据:
可选部分,比如GET请求就没有请求数据。 下面是一个POST方法的请求报文:
POST /index.php HTTP/1.1 请求行
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2 请求头
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://localhost/
Content-Length:25
Content-Type:application/x-www-form-urlencoded
空行
username=aa&password=1234 请求数据
HTTP响应
HTTP响应报文主要由状态行、响应头部、空行以及响应数据组成。
1.状态行: 由3部分组成,分别为:协议版本,状态码,状态码描述。
其中协议版本与请求报文一致,状态码描述是对状态码的简单描述,所以这里就只介绍状态码。
状态码
状态代码为3位数字。
1xx:指示信息--表示请求已接收,继续处理。
2xx:成功--表示请求已被成功接收、理解、接受。
3xx:重定向--要完成请求必须进行更进一步的操作。
4xx:客户端错误--请求有语法错误或请求无法实现。
5xx:服务器端错误--服务器未能实现合法的请求。
下面列举几个常见的:
了解更多状态码3.响应数据
用于存放需要返回给客户端的数据信息。
下面是一个响应报文的实例:
HTTP/1.1 200 OK 状态行
Date: Sun, 17 Mar 2013 08:12:54 GMT 响应头部
Server: Apache/2.2.8 (Win32) PHP/5.2.5
X-Powered-By: PHP/5.2.5
Set-Cookie: PHPSESSID=c0huq7pdkmm5gg6osoe3mgjmm3; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 4393
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=utf-8
空行
如何使用curl命令
curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。
curl使用详解
如何用Chrome开发者工具查看 HTTP 请求和响应
打开Chrome浏览器的任意一个页面,右键->检查->Network 然后输入网址或直接刷新页面,就可以看到浏览器与服务器交互的信息,随便点击一个,在右边就会显示出该文件请求和响应的过程.