过了个春节假期,写博客也耽搁了些许时日。经娄老师提醒,今天开始把它拾起来。自己倒也有边学习边做记录的习惯,有专门的笔记本记录学习过程中遇到的问题和解决办法,或者干脆在书中空白处写几句话。与写博客相比,二者各有千秋,谈不上好与坏。不过,从长远来看,写博客这件事还是比做笔记有些优势的(当然不是否定做笔记这一学习方法),至少毕业搬家的时候省些力气吧,哈哈。所以呢,以后我也得养成坚持写博客的习惯,不能老让别人提醒,年龄都这么大了……
以上算是做个总结,接下来要写的是最近一段时间学习的收获。
这段时间一直在学习Java Web的东西。之前也在学习,不过我感觉这种技术性的内容对我来说,看视频比单纯看书有效率,特别是细节性的知识点,如果仅仅是看书的话,可能当时能记得住,但是知识点一旦多了,就很难对上号,只能再一遍去翻书,很费功夫。最近看了一些相关的学习视频,跟着课程总结出来一些东西,如下:
GET请求与POST请求
用户如果没有设置,默认情况下浏览器向服务器发送的是GET请求。如果想改为POST,可通过更改表单的提交方式实现:
<form action="/1.html" method="post">
</form>
GET与POST的区别体现在数据表单上:
如请求方式为GET,则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&分隔。
GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K。
POST方式的特点:传递的数据量无限制,在请求的实体内容中向服务器发送数据。
HTTP请求中的常用头
Accept :用于告诉服务器,客户机支持的数据类型。
Accept-Charset :用于告诉服务器,客户机采用的编码。
Accept-Encoding :用于告诉服务器,客户机支持的数据压缩格式。
Accept-Language :用于告诉服务器,客户机的语言环境。
Host :告诉服务器访问的主机名。
If-Modified-Since:用于告诉服务器,资源的缓存时间。
Referer :用于告诉服务器,它是从哪个资源来访问服务器的(防盗链)。
User-Agent :用于告诉服务器,客户机的软件环境。
Cookie :可以通过这个头向服务器带数据(以后的博客会详细介绍)。
Connection :用于告诉服务器,这个请求结束后是保持连接还是关闭。
Date :时间。
HTTP响应的状态码(状态行中)
100~199:表示成功接收请求。要求客户端继续提交下一次请求才能完成整个处理过程。 (不常用)
200~299:表示成功接收请求并已完成整个处理过程,常用200.
300~399:特别的,302,表示资源移动到新地址,客户端应去别处找资源;304、307,告诉客户端去查缓存。
400~499:客户端请求有错误。常见的有404(服务器没资源),403(客户端没权限)。
500~599:服务器端出现错误,常用500.
HTTP响应头
Location :配合302状态码使用,用于告诉客户端应该去哪里去资源。
Server :告诉浏览器服务器的类型。
Content-Encoding :告诉浏览器数据的压缩格式。
Content-Length :回送数据的长度。
Content-Language :回送的语言环境。
Content-Type :回送的数据类型。可在web.xml文件中查询数据类型对应的填充内容。
Last-Modified :告诉浏览器当前资源的缓存时间。
Refresh :告诉浏览器多久刷新一次。
Conten-Disposition :告诉浏览器以下载方式打开数据。
Transfer-Encoding :告诉浏览器数据的传输格式。
Set-Cookie :(先不写,以后详述)
Etag :缓存相关的头(~~~实时更新~~~)。
Expires :告诉浏览器把回送的资源缓存多长时间(-1或0不缓存)。
Cache-Control:no-cache :控制浏览器不要缓存数据。
Pragma:no-cache :控制浏览器不要缓存数据。
Connection :用于告诉浏览器,这个请求结束后是保持连接还是关闭。
Date :时间。
HTTP请求头字段
Range头指示服务器只传输一部分Web资源,可实现断点续传功能.使用示例如下:
Range: bytes=1000-2000 传送1000-2000字节
Range: bytes=1000- 传送第1000个字节以后的内容
Range: bytes=1000 传送最后1000个字节
HTTP响应头字段
Accept-Range:说明Web服务器是否支持Range。支持返回bytes,不支持返回none
Content-Range:指定返回的Web资源的字节范围。例如Content-Range:1000-3000/5000