首页 > 代码库 > Http协议的知识浅解
Http协议的知识浅解
Http协议
概念: 规定被约束的对象需要遵守的规则!!!
Http 协议
Http协议:超文本传输协议(Http:HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。
HTTP协议的特点:
* Http 协议遵守一个请求响应模式。(request, response).
* 请求和相应必须成对出现。
*必须现有请求后有响应。
HTTP 协议默认的端口: 80
Http协议的请求部分
客户端向服务器发送的数据格式:
GET方式的抓包:
GET /WEB09/demo1/subSucc.html?username=aaa&password=123 HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
X-HttpWatch-RID: 63397-10023
Referer: http://localhost:8080/WEB09/demo1/demo1.html
Accept-Language: zh-Hans-CN,zh-Hans;q=0.5
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Host: localhost:8080
Connection: Keep-Alive
POST方式的抓包:
POST /WEB09/demo1/subSucc.html HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
X-HttpWatch-RID: 63397-10049
Referer: http://localhost:8080/WEB09/demo1/demo1.html
Accept-Language: zh-Hans-CN,zh-Hans;q=0.5
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: localhost:8080
Content-Length: 25
Connection: Keep-Alive
Cache-Control: no-cache
username=aaa&password=123
由此可知
格式为GET请求方式【请求行】【请求头】
POST请求方式【请求行】【请求头】【请求体】
【请求行】
请求方式 请求路径 协议版本
请求方式 : 请求方式有很多种 常用的是 GET和POST。
GET和POST 的区别?
*请求参数会显示到地址栏。GET方式有大小限制,GET方式没有请求体。
*POST;请求参数不会显示到地址栏,在请求体中.POST没有大小的限制.POST方式有请求体。
* 只用表单设置method="post"才是post请求,其他的都是get请求。
【请求头】
*请求头通常都是key:value的键值对的形式。一般情况下一个key对应一个value但是一个key对应多个value的情况。
*Referer : 网站的来源。防盗链
*User-Agent :获得客户浏览器的信息。(文件下载:IE:URL编码 火狐 Base64)
*If-Modified-Since :和相应中一个头一起使用 完成本地缓存的查找。
【请求体】
POST方式 提交的参数(GET没有)
HTTP协议的响应的部分
服务器向客户端发送的数据的格式:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/"147-1455670867735"
Last-Modified: Wed, 17 Feb 2016 01:01:07 GMT
Content-Type: text/html
Content-Length: 147
Date: Wed, 17 Feb 2016 01:17:06 GMT
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>鎻愪氦鎴愬姛</h1>
</body>
</html>
【响应行】
包括 协议版本(一般都是HTTP) 状态码 状态码得描述
其中常见的额状态码包括以下几种
200:响应成功
302:重定向 表示让浏览器去请求新的地址
响应头:Location,它的值就是新的地址。
304:查找本地缓存
Last-Modifired:响应头,在第一次请求时,服务器给浏览器的。
当前内容的最后修改时间
If-Modeifired-Since:请求头,在第二次请求时,把上一个请求中的时间归还给服务器
如果状态码为304,那么这个响应中一定没有响应体!!!
404:浏览资源不存在(目录的问题 1、首先看配置文件的事。2、看是否是文件名单词是否错误)
(重点注意) 405:服务器端的方法出现的错误(你需要调用的方法被修改)
405;客户端错误的一种(请求方式不支持)服务器只支持GET,但客户端发的POST,就会出现这个状态码!
500:服务器内部错误(后台代码的错误)
【响应头】
一个key对应一个value,也有一个key对应多个value 的头。
Last-Modifed : 最后的修改文件的时间. 与If-Modified-Since一起使用。
Refresh : 定时刷新.
Location ;重定向的路径.
Content-Disposition:文件下载的时候使用的头信息。
禁用浏览器缓存:
Pragma
Exprires
Cache-Control
【响应体】
页面要显示的内容(即后台代码的内容eg:网页页面右击查看网页源代码)。
Http协议的知识浅解