ディレクトリ
ネットワーク層
ネットワーク層は
第一層との間の部分が削除されないヘッダ情報は、各レイヤの受信端を介して、追加されないであろう層を介して、データ送信側を送信します
TCP / IPの義務
二つの要求パケット
要求メッセージは、要求メソッド、URL、プロトコルのバージョンである、オプションヘッダフィールドを要求し、コンテンツエンティティが構成される。
リクエストライン
要求ライン(要求ラインは)3つの部分に分かれている:要求方法、プロトコル・バージョン要求アドレスと
リクエストメソッド
(また、「アクション」と呼ばれる)CPC 9の方法で定義されたHTTP / 1.1プロトコルは、別の方法操作でリソースを指定します
リクエストヘッダ
リクエストヘッダは、追加情報のために使用することができる伝送フォーマットは次のとおり键: 值
、コロンの後注空格
:
要求と応答の共通の一般的なヘッダー
一般的な要求ヘッダー
リクエストボディ
異なるアプリケーションシナリオによると、HTTPリクエストのリクエストボディは、三つの異なる形式があります
最初:
一般的な要求身体のあらゆるタイプのモバイル開発者は、サーバは、処理された要求は、POST JSONなど、自分自身を解決する必要がリクエストボディを解決しません、それは一種のです
第二:
第二及び第三の固定フォーマットを持って、サーバー側の開発者の両方を知ることが最初です。キーと値のペアの複数&キーと値の間の接続の中で=リンク、およびASCII文字のみで、ASCII文字は非コードURLENCODEを使用する必要があります。ここではURLリクエストのクエリ文字列の形式要件のフォーマットは、
第三の
第三种请求体被分成多个部分, 文件上传 时会被使用,这种格式最先是被用于邮件传输中,每个字段/文件都被 boundary(Content-Type中指定的
)分成单独的段
,每段以--加 boundary 开头
,然后是该段的描述头
,描述头之后空一行接
内容,请求结束的标识为boundary 后面加--
区分是否被当成文件的关键是 Content-Disposition 是否包含 filename,因为文件有不同的类型,所以还要使用 Content-Type 指示文件的类型,如果不知道是什么类型取值可以为 application/octet-stream 表示文件是一个二进制的文件,如果不是文件则 Content-Type 可以省略
三 响应报文
响应报文基本上由协议版本,状态码,用以解释状态的原因短语,可选的响应首部字段以及实体主体构成。
HTTP 响应的格式上除状态行(第一行)与请求报文的请求行不一样之外,其他的就格式而言是一样的,但排除状态行和请求行的区别,从 Header 上还是可以区分出 HTTP 请求和 HTTP 响应的区别的,怎么区别就要看前面的 Header 啦
响应状态行
2XX 成功
- 200 OK,表示从客户端发来的请求在服务器端被正确处理
- 204 No content,表示请求成功,但响应报文不含实体的主体部分
- 206 Partial Content,进行范围请求
3XX 重定向
- 301 moved permanently,永久性重定向,表示资源已被分配了新的 URL
- 302 found,临时性重定向,表示资源临时被分配了新的 URL
- 303 see other,表示资源存在着另一个 URL,应使用 GET 方法丁香获取资源
- 304 not modified,表示服务器允许访问资源,但因发生请求未满足条件的情况
- 307 temporary redirect,临时重定向,和302含义相同
4XX 客户端错误
- 400 bad request,请求报文存在语法错误
- 401 unauthorized,表示发送的请求需要有通过 HTTP 认证的认证信息
- 403 forbidden,表示对请求资源的访问被服务器拒绝
- 404 not found,表示在服务器上没有找到请求的资源
5XX 服务器错误
- 500 internal sever error,表示服务器端在执行请求时发生了错误
- 503 service unavailable,表明服务器暂时处于超负载或正在停机维护,无法处理请求
响应头
响应头同样可用于传递一些附加信息
常见的响应 Header
响应体
响应体也就是网页的正文内容,一般在响应头中会用 Content-Length
来明确响应体的长度,便于浏览器接收,对于大数据量的正文信息,也会使用chunked
的编码方式。
四 POST和GET
副作用指对服务器上的资源做改变,搜索是无副作用的,注册是副作用的。
幂等指发送 M 和 N 次请求(两者不相同且都大于1),服务器上资源的状态一致。注册10个和11个帐号是不幂等的,对文章进行更改10次和11次是幂等的。
- Get 请求能缓存,Post 不能
- Post 相对 Get 安全一点点,因为Get 请求都包含在 URL 里,且会被浏览器保存历史纪录,Post 不会,但是在抓包的情况下都是一样的。
- Post 可以通过 request body来传输比 Get 更多的数据,Get 没有这个技术
- URL有长度限制,会影响 Get 请求,但是这个长度限制是浏览器规定的,不是 RFC 规定的
- Post 支持更多的编码类型且不对数据类型限制
五 HTTP 缓存
缓存相关 header
- Expires
响应头,代表该资源的过期时间。
- Cache-Control
请求/响应头,缓存控制字段,精确控制缓存策略。
- If-Modified-Since
请求头,资源最近修改时间,由浏览器告诉服务器。
- Last-Modified
响应头,资源最近修改时间,由服务器告诉浏览器。
- Etag
响应头,资源标识,由服务器告诉浏览器。
- もし-なしマッチ
リクエストヘッダは、ブラウザによって識別されるキャッシュリソースは、サーバーに指示します。