Skip to content

Latest commit

 

History

History
186 lines (136 loc) · 9.93 KB

Speed-Web.md

File metadata and controls

186 lines (136 loc) · 9.93 KB

Speed-Web


什么是 Request,Response

浏览器发送消息给网址所在的服务器,这个过程就叫做 HTTP Request

服务器收到浏览器发送的消息后,能够根据浏览器发送消息的内容,做相应的处理,然后把消息回传给浏览器,这个过程就是 HTTP Response

浏览器收到服务器的 Response 信息后,会对信息进行相应的处理,然后展示

Request 中包含什么?

  • 请求方式

  • 请求 URL

    URL,即统一资源定位符,也就是我们说的网址,统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的 URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。

    URL的格式由三个部分组成:

    • 第一部分是协议(或称为服务方式)。
    • 第二部分是存有该资源的主机 IP 地址(有时也包括端口号)。
    • 第三部分是主机资源的具体地址,如目录和文件名等。
  • 请求头

  • 请求体

    请求是携带的数据,如提交表单数据时候的表单数据(POST)

Response 中包含了什么

所有 HTTP 响应的第一行都是状态行,依次是当前 HTTP 版本号,3位数字组成的状态代码,以及描述状态的短语,彼此由空格分隔。

  • 响应状态码

  • 响应头

  • 响应体

    最主要的部分,包含请求资源的内容,如网页 HTMl,图片,二进制数据等


HTTP

URL

web 开发中通过英文问号(?)方式在浏览器地址栏中传值时。浏览器是通过 & 来区分问号后的参数个数的。 如果出现传值参数中带有 & 时,在接受页面就会出现错误,类似如下请求路径:/next.jsp?param1=hendhs89&furej & param2=sss

参数 param1 中含有转义字符 & ,这样会导致被请求页的参数接收错误。

在传值前通过编码处理,可将转义字符转为 16 进制;

特殊字符 URL 中用途 转义方式
+ 表示空格 %2B
(空格) 应换用加号 +%20 表示 %20
/ 分隔目录和子目录 %2F
? 分隔实际的 URL 和参数 %3F
% 指定特殊字符 %25
# 表示书签 %23
& URL 中指定的参数间的分隔 %26
= URL 中指定参数的值 %3D
! URL 中指定参数的值 %21

HTTP报文


响应状态码

所有 HTTP 响应的第一行都是状态行,依次是当前 HTTP 版本号,3位数字组成的状态代码,以及描述状态的短语,彼此由空格分隔。

有多种响应状态

状态码 含义 说明
1xx 临时响应 表示临时响应并需要请求者继续执行操作的状态代码.
100 继续 请求者应当继续提出请求. 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分.
101 切换协议 请求者已要求服务器切换协议,服务器已确认并准备切换.
2xx 成功 表示成功处理了请求的状态代码.
200 成功 服务器已成功处理了请求. 通常,这表示服务器提供了请求的网页.
201 已创建 请求成功并且服务器创建了新的资源.
202 已接受 服务器已接受请求,但尚未处理.
203 非授权信息 服务器已成功处理了请求,但返回的信息可能来自另一来源.
204 无内容 服务器成功处理了请求,但没有返回任何内容.
205 重置内容 服务器成功处理了请求,但没有返回任何内容.
206 部分内容 服务器成功处理了部分 GET 请求.
3xx 重定向 表示要完成请求,需要进一步操作. 通常,这些状态代码用来重定向.
300 多种选择 针对请求,服务器可执行多种操作. 服务器可根据请求者(user agent)选择一项操作,或提供操作列表供请求者选择.
301 永久移动 请求的网页已永久移动到新位置. 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置.
302 临时移动 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求.
303 查看其他位置 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码.
304 未修改 自从上次请求后,请求的网页未修改过. 服务器返回此响应时,不会返回网页内容.
305 使用代理 请求者只能使用代理访问请求的网页. 如果服务器返回此响应,还表示请求者应使用代理.
307 临时重定向 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求.
4xx 请求错误 这些状态代码表示请求可能出错,妨碍了服务器的处理.
400 错误请求 服务器不理解请求的语法.
401 未授权 请求要求身份验证. 对于需要登录的网页,服务器可能返回此响应.
402 未支付 402状态码被创建最初目的是用于数字现金或微型支付系统, 表明客户端请求的内容只有付费之后才能获取.
403 禁止 服务器拒绝请求.
404 未找到 服务器找不到请求的网页.
405 方法禁用 禁用请求中指定的方法.
406 不接受 无法使用请求的内容特性响应请求的网页.
407 需要代理授权 此状态代码与 401 类似,但指定请求者应当授权使用代理.
408 请求超时 服务器等候请求时发生超时.
409 冲突 服务器在完成请求时发生冲突. 服务器必须在响应中包含有关冲突的信息.
410 已删除 如果请求的资源已永久删除,服务器就会返回此响应.
411 需要有效长度 服务器不接受不含有效内容长度标头字段的请求.
412 未满足前提条件 服务器未满足请求者在请求中设置的其中一个前提条件.
413 请求实体过大 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力.
414 请求的 URI 过长 请求的 URI (通常为网址)过长,服务器无法处理.
415 不支持的媒体类型 请求的格式不受请求页面的支持.
416 请求范围不符合要求 如果页面无法提供请求的范围,则服务器会返回此状态代码.
417 未满足期望值 服务器未满足"期望"请求标头字段的要求.
5xx 服务器错误 这些状态代码表示服务器在尝试处理请求时发生内部错误. 这些错误可能是服务器本身的错误,而不是请求出错.
500 服务器内部错误 服务器遇到错误,无法完成请求.
501 尚未实施 服务器不具备完成请求的功能. 例如,服务器无法识别请求方法时可能会返回此代码.
502 错误网关 服务器作为网关或代理,从上游服务器收到无效响应.
503 服务不可用 服务器目前无法使用 (由于超载或停机维护). 通常,这只是暂时状态.
504 网关超时 服务器作为网关或代理,但是没有及时从上游服务器收到请求.
505 HTTP 版本不受支持 服务器不支持请求中所用的 HTTP 协议版本.

MIME types

在浏览器中显示的内容有 HTML、有 XML、有 GIF、还有 Flash ……那么,浏览器是如何区分它们,决定什么内容用什么形式来显示呢?答案是 MIME Type,也就是该资源的媒体类型。

媒体类型通常是通过 HTTP 协议,由 Web 服务器告知浏览器的,更准确地说,是通过 Content-Type 来表示的,例如: Content-Type: text/HTML ,表示内容是 text/HTML 类型,也就是超文本文件。MIME type 是一个标准,编写格式和内容都是已经固定好的。

通常只有一些在互联网上获得广泛应用的格式才会获得一个 MIME Type,如果是某个客户端自己定义的格式,一般只能以 application/x- 开头。当然,处理本地的文件,在没有人告诉浏览器某个文件的 MIME Type 的情况下,浏览器也会做一些默认的处理。

每个 MIME 类型由两部分组成:前面是数据的大类别(主类型),例如声音 audio、图象 image 等,后面定义具体的种类(子类型)。很多时候,如果在后台服务器没有定义子类型的时候,文本文件默认为 text/plain ,而二进制文件则默认为 application/octet-stream

常见类型

  • text

    • text/html
    • text/css
    • text/javascript
    • text/plain
    • text/markdown
  • image

    • image/jpeg
    • image/png
    • image/svg
  • video

    • video/mp4
  • audio

    • audio/ogg
  • application

    • application/json
    • application/xml
    • application/pdf
    • application/octet-stream
  • multipart

    注:multipart 表示具有多个 MIME types 的一组 document. 比如 multipart/form-data 就是通常由 HTTP FORM 的 post 方法发送出的文件表格格式。

    • multipart/form-data

HTML


CSP

文章