网络Java基础我爱编程

HTTP—https、http缓存、get与post、web安全

2017-08-29  本文已影响49人  Lmagic

HTTP诞生

1989年为知识共享而诞生的Web,提出了3项WWW构建技术:

  1. 标准通用标记语言设为HTML(HyperText Markup Language,超文本标记语言)
  2. 文档传输协议HTTP(HyperText Transfer Protocol,超文本传输协议)
  3. 文档定位URL(Uniform Resource Locator,统一资源定位符)

HTTP特点

HTTP报文

通用首部字段
请求首部字段
响应首部字段
实体首部字段

HTTP状态码

HTTP状态码

1) 200 OK ;请求正常处理
2) 204 No Content ;请求处理成功,但没有资源可返回
3) 206 Partial Content ; 客户端进行了范围请求,服务器成功处理
4) 301 Moved Permanently ; 永久性重定向,即请求的资源已经被分配了新的URI
5) 302 Found ; 临时重定向,即请求的资源临时被分配了新的URI
6) 303 See Other ; 表示请求对应的资源存在着另一个URI,应使用GET方法定向获取
7) 304 Not Modified ; 服务器资源未改变,可直接使用客户端未过期的缓存(与重定向无关)
8) 307 Temporary Redirect ; 临时重定向(会强制浏览器不能将POST改为GET方法)
9) 400 Bad Request ; 表示请求报文中存在语法错误
10) 401 Unauthorized ; 表明请求需要通过HTTP认证,若之前已请求过一次,则表示用户认证失败
11) 403 Forbidden ; 服务器拒绝该资源的访问
12) 404 Not Found ; 服务器无法找到请求的资源
13) 500 Internal Server Error ; 服务器发生内部错误
14) 503 Service Unavailable ; 服务器超负荷,无法处理请求
有些时候,状态码和状况会不一致

说明:301和302状态码都是重定向,但区别是301是永久重定向,302为临时重定向。若客户端将URL保存为书签,那么301就会去更新书签,而302不会去更新书签。
重定向:服务器告诉客户端,需要重新发送请求到新的URL。服务器返回302状态码时,设置响应头的Location字段。

HTTPS(HTTP over SSL,包括加密、认证、完整性保护)

HTTPS通信

HTTP缓存

  1. Etag / If-None-Match(优先级高)
    第一次请求时,服务器通过Etag告诉客户端资源的唯一标识符
    再次请求时,客户端通过If-None-Match告诉服务器该资源缓存数据库中的资源标识符,服务器将其进行校验比对,若资源发生变化(资源标识符变化),则返回修改过的资源,200;若资源未被修改过,则返回304。
  2. Last-Modified / If-Modified-Since
    第一次请求时,服务器在响应请求时,通过Last-Modified告诉浏览器资源的最后修改时间。
    再次请求时,客户端通过If-Modified-Since发送资源的最后修改时间,服务器接收到后进行校验对比,若资源在该时间之后被修改过,则返回修改过的资源,200;若资源未被修改过,则返回304。
    cnblog讲解
    个人理解:客户端缓存数据库中的资源带有Expires的时间、Cache-Control的时间间隔、If-None-Match的资源标识符 或者 If-Modified-Since的标识时间。浏览器在请求相应资源时,分别判断资源的各个标识符,采用缓存资源或者发送相应的http头部信息给服务器端进行校验。

get与post区别

W3school

  1. get可被缓存
  2. get请求保留在浏览器历史纪录中
  3. get请求可被收藏为书签
  4. get请求不应在处理敏感数据时使用,get请求在url中发送,post请求在http消息主体中发送。
  5. get请求长度有限制(url的限制),post请求对数据长度没有要求
  6. get只能是url编码
  7. get参数会显示在url中
  8. 后退和刷新,post会被重新提交
  9. get是幂等的,意味着对同一URL的多个请求应该返回同样的结果。
  10. 对资源的增,删,改,查操作,其实都可以通过GET/POST完成,不需要用到PUT和DELETE
    get与post区别

web安全

上一篇 下一篇

猜你喜欢

热点阅读