天天看点

HTTP 协议学习笔记

TCP 三次握手详情

客户端    ------------------------->   服务端      

1 syn

<--------------------

2 syn = syn + 1;ack

---------------------->

3 ack = ack + 1

DNS 服务

本地机器访问一个域名的时候,先查看本地的host文件,windows的host文件一般在 C:\Windows\System32\drivers\etc 目录下,linux系统的host文件一般在 /etc 目录下。如果在本地host文件中没有查到域名的信息,就向远程DNS服务商发起请求。一个比较好的验证方法,利用ping命令。

URL & URI

url:统一资源定位符

uri:统一资源标识符

绝对URI

http://user:[email protected]:80/xxx/index.html?uid=1#ch1      

和mysql的驱动很类似:

jdbc:mysql://127.0.0.1:3306/shengqian?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false      

HTTP 方法

get:请求访问已被URI标识的资源

post:用来传输实体的主体

put:传输文件

head:只返回get方法的头部

delete:删除指定文件

options:询问支持的方法

trace:让web服务器端将之前的请求通信返回给客户端的方法,可以查询请求的加工(在代理中转的地方)

connect:在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信

http 首部

  • 首部字段
  • 请求首部字段
  • Accept:用户代理可处理的媒体类型
  • Accept-Charset:优先的字符集
  • Accept-Encoding:优先的内容编码
  • Accept-Language:优先的语言
  • Authrozation:Web认证信息
  • Expect:期待服务器的特定行为
  • From:用户的电子邮箱地址
  • Host:请求资源所在服务器
  • If-Match:比较实体标记(ETag)
  • If-Modified-Since:比较资源的更新时间
  • if-None-Match:比较实体标记(与 If-Match 相反)
  • If-Range:资源未更新时发送实体Byte的范围请求
  • If-Unmodified-Since:比较资源的更新时间
  • Max-Forwards:最大传输逐跳数
  • Proxy-Authorization:代理服务器要求客户端的认证信息
  • Range:实体的字节范围请求
  • Referer:对请求中URI的原始获取方
  • TE:传输编码的优先级
  • User-Agent:HTTP客户端程序的信息
  • 通用首部字段
  • Cache-Control:控制缓存的行为:参数可选,用逗号分隔

    * 缓存请求字段

    - no-cache:强制向源服务器再次验证

    - no-store:不缓存请求或响应的任何内容

    - max-age=[秒]:响应的最大Age值

    - max-stable():接收已经过期的响应

    - min-fresh=[]:期望在指定时间内的响应仍有效

    - no-transform:代理不可更改媒体类型

    - only-if-cached:从缓存获取资源

    - cache-extension:新指令标记(token)

    * 缓存响应字段

    - public:可向任一方提供响应的缓存

    - pricate:仅向特定用户返回响应

    - no-cache:缓存前必须先确认其有效性

    - no-store:不缓存请求或响应的任何内容

    - no-transform:代理不可更改媒体类型

    - must-revalidate:可缓存但必须再向源服务器进行确认

    - proxy-revalidate:要求中间缓存服务器对缓存的响应有效性再进行确认

    - max-age = []:响应的最大Age值

    - s-maxage = []:公共缓存服务器响应的最大Age值

    - cache-extension:新指令标记(token)

  • Connection:逐跳首部、连接的管理
  • Date:创建报文的日期
  • Pragma:报文指令
  • Trailer:报文末端的首部一览
  • Transfer-Encoding:指定报文主体的传输编码方式
  • Upgrade:升级为其他协议
  • Via:代理服务器的相关信息
  • Warning:错误通知
  • 实体首部字段
  • Allow:资源可支持的HTTP方法
  • Content-Encoding:实体主体适用的编码方式
  • Content-Language:实体主体的自然语言
  • Content-Length:实体主体的大小
  • Content-Location:替代对应资源的URI
  • Content-MD5:实体主体的报文摘要
  • Content-Range:实体主体的位置范围
  • Content-Type:实体主体的媒体类型
  • Expires:实体主体过期的日期时间
  • Last-Modified:资源的最后修改日期时间
  • 响应首部字段
  • Accept-Ranges:是否接受字节范围的请求
  • Age:推算资源创建经过时间
  • Etag:资源的匹配信息
  • Location:令客户端重定向至指定URI
  • Proxy-Authenticate:代理服务器对客户端的认证信息
  • Retry-After:对再次发起请求的时机要求
  • Server:HTTP服务器的安装信息
  • Vary:代理服务器存的管理信息
  • WWW-Authenticate:服务器对客户端的认证信息