1. HTTP协议特点
1)client->服务器(要求request)有三个部分
a)请求行
b)请求头
c)请求的内容,假设没有。就是空白字符
2)服务端->client(响应response)有三部份
a)响应行
b)响应头
c)响应的内容,假设没有,就是空白字符
2 HTTP请求头和响应头含义
1)请求(client->服务端[request])
GET(请求的方式) /books/java.html(请求的目标资源) HTTP/1.1(请求採用的协议和版本)
Accept: */*(client能接收的资源类型)
Accept-Language: en-us(client接收的语言类型)
Connection: Keep-Alive(维护client和服务端的连接关系)
Host: localhost:8080(连接的目标主机和port号)
Referer: http://localhost/links.asp(从来于哪里)
User-Agent: Mozilla/4.0(client版本的名字)
Accept-Encoding: gzip, deflate(client能接收的压缩数据的类型)
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT(缓存时间)
Cookie(client暂存服务端的信息)
Date: Tue, 11 Jul 2000 18:23:51 GMT(client请求服务端的时间)
2)响应(服务端->client[response])
HTTP/1.1(响应採用的协议和版本) 200(状态码) OK(描写叙述信息)
302(client请求服务端。但服务端没有相应的资源,服务端要client再次请求找其他的服务端,即client二次请求。重定向)
307(client请求服务端,但服务端没有相应的资源。服务端自行再次请求找其他的服务端,即client一次请求,转发)
304(client请求服务端。此时client缓存中有。无需再从服务端下载新的内容,服务端叫client自行找缓存,优化)
Server:apache tomcat(服务端的Web服务端名)
Content-Encoding: gzip(服务端可以发送压缩编码类型)
Content-Length: 80(服务端发送的压缩数据的长度)
Content-Language: zh-cn(服务端发送的语言类型)
Content-Type: text/html; charset=GB2312(服务端发送的类型及採用的编码方式)
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT(服务端对该资源最后改动的时间)
Refresh: 1;url=http://www.it315.org(服务端要求client1秒钟后,刷新。然后訪问指定的页面路径)
Content-Disposition: attachment; filename=aaa.zip(服务端要求client下面载文件的方式打开该文件)
Transfer-Encoding: chunked(分块传递数据到client)
Set-Cookie:SS=Q0=5Lb_nQ; path=/search(服务端发送到client的暂存数据)
Expires: -1//3种(服务端禁止client缓存页面数据)
Cache-Control: no-cache(服务端禁止client缓存页面数据)
Pragma: no-cache(服务端禁止client缓存页面数据)
Connection: close(1.0)/(1.1)Keep-Alive(维护client和服务端的连接关系)
Date: Tue, 11 Jul 2000 18:23:51 GMT(服务端响应client的时间)
3)总结
想让浏览器有何种行为,服务端仅仅能通过响应头的方式来设置
想让server知道何种行为,浏览器仅仅能通过请求头的方式来设置
3.经常使用的提交方式
a)GET
特点:请求參数不管多少,都会根着URL后传递到服务端。以明文方式传递
GET方式传递有限制大小。基本的是地址栏的数据有限制
GET方式传递信息不安全
b)POST
特点:
请求參数不管多少,都不会根着URL后传递到服务端。而是以參数形式在请求体中传递到服务端
POST方式传递无限制大小
1)client->服务器(要求request)有三个部分
a)请求行
b)请求头
c)请求的内容,假设没有。就是空白字符
2)服务端->client(响应response)有三部份
a)响应行
b)响应头
c)响应的内容,假设没有,就是空白字符
2 HTTP请求头和响应头含义
1)请求(client->服务端[request])
GET(请求的方式) /books/java.html(请求的目标资源) HTTP/1.1(请求採用的协议和版本)
Accept: */*(client能接收的资源类型)
Accept-Language: en-us(client接收的语言类型)
Connection: Keep-Alive(维护client和服务端的连接关系)
Host: localhost:8080(连接的目标主机和port号)
Referer: http://localhost/links.asp(从来于哪里)
User-Agent: Mozilla/4.0(client版本的名字)
Accept-Encoding: gzip, deflate(client能接收的压缩数据的类型)
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT(缓存时间)
Cookie(client暂存服务端的信息)
Date: Tue, 11 Jul 2000 18:23:51 GMT(client请求服务端的时间)
2)响应(服务端->client[response])
HTTP/1.1(响应採用的协议和版本) 200(状态码) OK(描写叙述信息)
302(client请求服务端。但服务端没有相应的资源,服务端要client再次请求找其他的服务端,即client二次请求。重定向)
307(client请求服务端,但服务端没有相应的资源。服务端自行再次请求找其他的服务端,即client一次请求,转发)
304(client请求服务端。此时client缓存中有。无需再从服务端下载新的内容,服务端叫client自行找缓存,优化)
500(client请求的资源,服务端存在,但在运行时出错)
404请求的资源找不到
Location: http://www.baidu.com(服务端须要client訪问的页面路径)Server:apache tomcat(服务端的Web服务端名)
Content-Encoding: gzip(服务端可以发送压缩编码类型)
Content-Length: 80(服务端发送的压缩数据的长度)
Content-Language: zh-cn(服务端发送的语言类型)
Content-Type: text/html; charset=GB2312(服务端发送的类型及採用的编码方式)
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT(服务端对该资源最后改动的时间)
Refresh: 1;url=http://www.it315.org(服务端要求client1秒钟后,刷新。然后訪问指定的页面路径)
Content-Disposition: attachment; filename=aaa.zip(服务端要求client下面载文件的方式打开该文件)
Transfer-Encoding: chunked(分块传递数据到client)
Set-Cookie:SS=Q0=5Lb_nQ; path=/search(服务端发送到client的暂存数据)
Expires: -1//3种(服务端禁止client缓存页面数据)
Cache-Control: no-cache(服务端禁止client缓存页面数据)
Pragma: no-cache(服务端禁止client缓存页面数据)
Connection: close(1.0)/(1.1)Keep-Alive(维护client和服务端的连接关系)
Date: Tue, 11 Jul 2000 18:23:51 GMT(服务端响应client的时间)
3)总结
想让浏览器有何种行为,服务端仅仅能通过响应头的方式来设置
想让server知道何种行为,浏览器仅仅能通过请求头的方式来设置
3.经常使用的提交方式
a)GET
特点:请求參数不管多少,都会根着URL后传递到服务端。以明文方式传递
GET方式传递有限制大小。基本的是地址栏的数据有限制
GET方式传递信息不安全
b)POST
特点:
请求參数不管多少,都不会根着URL后传递到服务端。而是以參数形式在请求体中传递到服务端
POST方式传递无限制大小
POST方式传递信息相对安全
4.浏览器与server的交互图
版权声明:本文博客原创文章。博客,未经同意,不得转载。