请求协议的格式如下:
请求首行
请求头信息
空行
请求体
响应协议的格式如下:
响应首行
响应头信息
空行
响应体
响应头对浏览器来说很重要,它说明了响应的真正含义。
200:请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中;
404:请求的资源没有找到,说明客户端错误的请求了不存在的资源;
500:请求资源找到了,但服务器内部出现了错误;
302:重定向,当响应码为302时,表示服务器要求浏览器重新再发一个请求,服务器会发送一个响应头Location,它指定了新请求的URL地址;
304:当用户第一次请求index.html时,服务器会添加一个名为Last-Modified响应头,这个头说明了index.html的最后修改时间,浏览器会把index.html内容,以及最后响应时间缓存下来。当用户第二次请求index.html时,在请求中包含一个名为If-Modified-Since请求头,它的值就是第一次请求时服务器通过Last-Modified响应头发送给浏览器的值,即index.html最后的修改时间,If-Modified-Since请求头就是在告诉服务器,我这里浏览器缓存的index.html最后修改时间是这个,您看看现在的index.html最后修改时间是不是这个,如果还是,那么您就不用再响应这个index.html内容了,我会把缓存的内容直接显示出来。而服务器端会获取If-Modified-Since值,与index.html的当前最后修改时间比对,如果相同,服务器会发响应码304,表示index.html与浏览器上次缓存的相同,无需再次发送,浏览器可以显示自己的缓存页面,如果比对不同,那么说明index.html已经做了修改,服务器会响应200。
参考:https://blog.csdn.net/qq_25827845/article/details/54562339
web请求方式:
OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE
方法GET和HEAD应该被所有的通用WEB服务器支持,其他所有方法的实现是可选的。GET方法取回由Request-URI标识的信息。HEAD方法也是取回由Request-URI标识的信息,只是可以在响应时,不返回消息体。POST方法可以请求服务器接收包含在请求中的实体信息,可以用于提交表单,向新闻组、BBS、邮件群组和数据库发送消息。
参考: http://baike.baidu.com/view/9472.htm
两种 HTTP 请求方法:GET 和 POST
在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。
GET - 从指定的资源请求数据。
POST - 向指定的资源提交要被处理的数据
GET 方法
请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:
/test/demo_form.asp?name1=value1&name2=value2
有关 GET 请求的其他一些注释:
GET 请求可被缓存
GET 请求保留在浏览器历史记录中
GET 请求可被收藏为书签
GET 请求不应在处理敏感数据时使用
GET 请求有长度限制
GET 请求只应当用于取回数据
POST 方法
请注意,查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的:
POST /test/demo_form.asp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
有关 POST 请求的其他一些注释:
POST 请求不会被缓存
POST 请求不会保留在浏览器历史记录中
POST 不能被收藏为书签
POST 请求对数据长度没有要求
参考:http://www.w3school.com.cn/tags/html_ref_httpmethods.asp
请求对象和响应对象(request和response)
* 当服务器接收到请求后,服务器会创建request和response对象,把请求数据封装到request对象中;
* 然后调用Servlet的service()方法时把这两个对象传递给service()方法;
* 在service()方法中可以通过request对象获取请求数据,可以使用response对象向客户端完成响应;
* 每次请求服务器都会创建新的request和response对象,即每个请求有自己独自的request和response对象。
response是响应对象,用来在Servlet的service()方法中向客户端响应数据。response的功能:
* 设置响应头
* 发送状态码
* 设置响应正文
* 重定向
request的功能:
* 获取请求头
* 获取请求参数
* Servlet三大域对象之一
* 请求包含和请求转发
参考:https://www.cnblogs.com/bkchengzheng/articles/5681633.html