Http协议学习总结

Http:版本1.0、1.1
区别:客户端与服务器连接后,1.0只能获得一次web资源,而1.1则可在一个连接上获取多个web资源**********?
持久连接是 HTTP1.1 的默认连接方式
Http分为两部分:响应头(Http响应)、请求头(Http请求)


一个Http请求包括:一个请求行、若干请求头(消息头)、一个空行、实体内容(请求数据)
7种请求方式:POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT
常用的有:GET、POST
GET的数据在请求行URL中显示
POST的数据在实体内容中显示


用于HTTP常用的请求头:
Accept:告诉服务器,客户机支持的数据类型
Accept-Charset:告诉服务器,客户机采用的编码
Accept-Encoding:告诉服务器,客户机支持的数据压缩格式
Accept-Language:告诉服务器,客户机的语言环境(如中国和美国登陆google显示语言不同)
Host:告诉服务器,想访问的主机名
If-Modified-Since:告诉服务器,这个资源的缓存时间
Referer:告诉服务器,它是从哪个资源来访问服务器的(如:可用于防盗链)
User-Agent:告诉服务器,客户机的软件环境
Cookie:客户机通过这个头可以向服务器带数据
Connection:请求结束之后,控制是保持还是关闭连接
Date


一个Http响应包括:一个状态行、若干消息头(响应头)、一个空行、实体内容
状态行,描述服务器请求的处理结果:如:HTTP/1.1 200 OK
状态码:
100~199:表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程 
200~299:表示成功接收请求并已完成整个处理过程,常用200
300~399:为完成请求,客户需进一步细化请求,如:请求的资源已经移动到一个新地址,常用302(你请求我,我要你去找别人,如:请求重定向)、(307和304)(你请求我,我要你去拿缓存的数据显示)
400~499:客户端的请求有错误,常用404(请求的地址写错了)、403(用户没权限,服务器拒绝访问)
500~599:服务器端出现错误,常用500 502 504?


用于HTTP常用的响应头:
Location:(请求重定向)这个头配合302状态码使用,用于告诉客户找谁 
(response.setStatus(302);
response.setHeader("location","/Lab/login.html"); )
Server:服务器通过这个头告诉浏览器服务器的类型
Content-Encoding:服务器通过这个头,告诉浏览器数据的压缩格式
(String data = "aaaaaaaa";
ByteArrayOutputStream bout = new ByteArrayOutputStream();
GZIPOutputStream gout = new GZIPOutputStream(bout);
gout.write(data.getBytes());
gout.close();
byte gzip[] = bout.toByteArray();
response.setHeader("Content-Encoding","gzip");
response.setHeader("Content-Length",gzip.length+"")
response.getOutputStream().write(gzip);


)
Content-Length:服务器通过这个头,告诉浏览器回送数据的长度
Content-Type:服务器通过这个头,回送数据的类型(response.setHeader("content-type","image/bmp");)
Last-Modified:服务器通过这个头,告诉浏览器当前资源的缓存时间
Refresh:服务器通过这个头,告诉浏览器隔多次时间刷新一次 response.setHeader("refresh","3")或setHeader("refresh","3;url=“”)隔3秒后刷新到新浪页面。
Content-Disposition:以下载方式打开("content-disposition","attachment;filename=3.jpg");
Transfer-Encoding: 服务器通过这个头,告诉浏览器数据的传送格式
ETag:缓存相关的头
Expires:告诉浏览器把回送的资源缓存多长时间,-1或0,则是不缓存
Cache-Control:no-cache
Pragna:no-cache 服务器通过以上两个头,也是控制浏览器不要缓存数据
Connection:请求结束之后,控制是保持还是关闭连接
Date
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值