javaweb入门笔记(2)-http入门
标签: javaweb httphtml
[TOC]java
对HTTP协议早有了解,最近在看javaweb,视频中讲到了这部分,就把视频的内容整理概括下git
请求(Request)
一个完整的HTTP请求包括:一个请求行、若干请求头、以及实体内容github
请求头字段
- Accept:用于告诉服务器,客户机支持的数据类型
- Accept-Charset:用于告诉服务器,客户机采用的编码
- Accept-Encoding:用于告诉服务器,客户机支持数据压缩格式
- Accept-Language:客户机的语言环境
- Host:客户机经过这个头告诉服务器,想访问的主机名
- If-Modified-Since:客户机经过这个头告诉服务器,资源的缓存时间
- Refer:客户机经过这个头告诉服务器,它是从哪一个资源访问服务器的(防盗链)
- User-Agent:客户机经过这个头告诉服务器,客户机的软件环境
- Cookie:客户机经过这个头向服务器带数据
- Connection:这个请求完了,是保持链接仍是关闭
- Range:断点下载
bytes=n1-n2
,传输范围n1到n2字节
bytes=n-
,传输web资源中第n个字节之后的全部内容
bytes=n
,传输最后n个字节
响应(Response)
一个HTTP响应表明服务器向客户端回送的数据,包括:一个状态行、若干消息头、以及实体内容web
响应状态行

详情可参考浏览器
HTTP 状态消息缓存
响应头字段
- Location:这个头配合302状态码使用,用于告诉客户机找谁(location和302实现请求重定向)
- Server:服务器经过这个头,告诉浏览器服务器的类型
- Content-Encoding:服务器经过这个头,数据的压缩格式 (相关java知识:
GZIPOutputStream
,包装流/底层流)
- Content-Length:服务器经过这个头,告诉浏览器回送数据的长度
- Content-Type:服务器经过这个头,告诉浏览器回送数据的类型
- Last-Modified:服务器经过这个头,告诉浏览器当前资源的缓存时间
- Refresh:服务器经过这个头,告诉浏览器隔多长时间刷新一次
- Content-Disposition:服务器经过这个头,告诉浏览器如下载方式打开
- Transfer-Encoding:服务器经过这个头,告诉浏览器数据的传送格式
- Etag:缓存相关的头部,用于实时性要求高的系统
- Expires:服务器经过这个头,告诉浏览器把回送的资源缓存多长时间,-1或0则不缓存
- Cache-Control和Pragma:no-cache,服务器经过这两个头,也是控制浏览器不要缓存数据
- Connection:断开链接/保持链接
- Date:当前时间
- Accept-Ranges:用来讲明web服务器是否支持range。支持返回bytes;不支持返回none
- Content-Range:制定了返回web资源的字节范围,格式:
n1-n2/n_total
做者@brianway更多文章:我的网站 | CSDN | oschina服务器