1.HTTP协议与报文简介
HTTP(hypertext transport protocol),即超文本传输协议。这个协议详细规定了浏览器和万维网服务器之间互相通信的规则。
而客户端与服务端通信时传输的内容我们称之为报文。
HTTP就是一个通信规则,这个规则规定了客户端发送给服务器的报文格式,也规定了服务器发送给客户端的报文格式。
客户端发送给服务器的称为”请求报文“,服务器发送给客户端的称为”响应报文“。
2.报文格式
报文格式: 报文首部 空行 报文主体
2.1 请求报文 :请求首部
get请求
GET /Hello/index.jsp HTTP/1.1 请求首行:请求方式 请求资源【url】 请求协议/版本号
Accept: */* 请求头部:*/*表示客户端可以接受的文档类型,*/*表示的是可以接受任意类型
Accept-Language: zh-CN Accept-Language:表示的是当前浏览器所在的地区,zh-CN表示是客户端用的语言简体中文,en-US表示的是美式英语!
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
Accept-Encoding: gzip,deflate 浏览器向服务器发送请求的时候,会告诉服务器端浏览器可以接受的压缩格式!
Host: localhost:8080 是目标主机的ip地址和端口号!
Connection: Keep-Alive 表示的是浏览器和服务器的通信连接:Keep-Alive表示会话保持!默认会话连接时间是3000ms!
Cookie: JSESSIONID=C55836CDA892D9124C03CF8FE8311B15 是位于浏览器端的,和服务器通信使用!
get请求没有空行和请求体!
post请求(大体与get相同)
POST /Hello/target.html HTTP/1.1
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*
Referer: http://localhost:8080/Hello/
Accept-Language: zh-CN
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: localhost:8080
Content-Length: 14
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: JSESSIONID=774DA38C1B78AE288610D77621590345
2.2 响应报文: 响应首部 空行 响应主体
响应报文是由响应首部[响应首行和响应头部]、空行、响应体
HTTP/1.1 200 OK 响应首行:通信协议/版本号 响应状态码
Server: Apache-Coyote/1.1 服务器:apache
Content-Type: text/html;charset=UTF-8 响应体编码类型:Content-Type
Content-Length: 274 响应体长度:Content-Length
Date: Tue, 07 Apr 2015 10:08:26 GMT 响应时间:Date
响应状态码:
200:表示的是响应成功
302:表示的是重定向
404:请求的url错误!
500:服务器端的错误!