美文网首页
技术面试基础知识:HTTP 篇

技术面试基础知识:HTTP 篇

作者: you的日常 | 来源:发表于2024-10-27 10:02 被阅读0次

一 、基础概念

Web 基础

  • HTTP(HyperText Transfer Protocol,超文本传输协议)。
  • WWW(World Wide Web)的三种技术:HTML、HTTP、URL。
  • RFC(Request for Comments,征求修正意见书),互联网的设计文档。

URL

  • URI(Uniform Resource Indentifier,统一资源标识符)
  • URL(Uniform Resource Locator,统一资源定位符)
  • URN(Uniform Resource Name,统一资源名称),例如 urn:isbn:0-486-27557-4 。

URI 包含 URL 和 URN,目前 WEB 只有 URL 比较流行,所以见到的基本都是 URL。

image.png

请求和响应报文

1. 请求报文

image.png

2. 响应报文

image.png

二、HTTP 方法

客户端发送的 请求报文 第一行为请求行,包含了方法字段。

GET

获取资源

当前网络请求中,绝大部分使用的是 GET 方法。

POST

传输实体主体

POST 主要目的不是获取资源,而是传输存储在内容实体中的数据。

GET 和 POST 的请求都能使用额外的参数,但是 GET 的参数是以查询字符串出现在 URL 中,而 POST 的参数存储在内容实体。

GET /test/demo_form.asp?name1=value1&name2=value2 HTTP/1.1
POST /test/demo_form.asp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2

GET 的传参方式相比于 POST 安全性较差,因为 GET 传的参数在 URL 中是可见的,可能会泄露私密信息。并且 GET 只支持 ASCII 字符,如果参数为中文则可能会出现乱码,而 POST 支持标准字符集。

GET 和 POST 的另一个区别是,使用 GET 方法,浏览器会把 HTTP Header 和 Data 一并发送出去,服务器响应 200(OK)并返回数据。而使用 POST 方法,浏览器先发送 Header,服务器响应 100(Continue)之后,浏览器再发送 Data,最后服务器响应 200(OK)并返回数据。

HEAD

获取报文首部

和 GET 方法一样,但是不返回报文实体主体部分。

主要用于确认 URL 的有效性以及资源更新的日期时间等。

PUT

上传文件

由于自身不带验证机制,任何人都可以上传文件,因此存在安全性问题,一般不使用该方法。

PUT /new.html HTTP/1.1
Host: example.com
Content-type: text/html
Content-length: 16
<p>New File</p>

PATCH

对资源进行部分修改

PUT 也可以用于修改资源,但是只能完全替代原始资源,PATCH 允许部分修改。

PATCH /file.txt HTTP/1.1
Host: www.example.com
Content-Type: application/example
If-Match: "e0023aa4e"
Content-Length: 100
[description of changes]

DELETE

删除文件

与 PUT 功能相反,并且同样不带验证机制。

DELETE /file.html HTTP/1.1

OPTIONS

查询支持的方法

查询指定的 URL 能够支持的方法。

会返回 Allow: GET, POST, HEAD, OPTIONS 这样的内容。

CONNECT

要求用隧道协议连接代理

要求在于代理服务器通信时建立隧道,使用 SSL(Secure Sokets Layer,安全套接字)和 TLS(Transport Layer Security,传输层安全)协议把通信内容加密后经网络隧道传输。

CONNECT www.example.com:443 HTTP/1.1
image.png

TRACE

追踪路径

服务器会将通信路径返回给客户端。

发送请求时,在 Max-Forwards 首部字段中填入数值,每经过一个服务器就会减 1,当数值为 0 时就停止传输。

通常不会使用 TRACE,并且它容易受到 XST 攻击(Cross-Site Tracing,跨站追踪),因此更不会去使用它。

三、HTTP 状态码

服务器返回的 响应报文 中第一行为状态行,包含了状态码以及原因短语,用来告知客户端请求的结果。

状态码 类别 原因短语
1XX Informational(信息性状态码) 接收的请求正在处理
2XX Success(成功状态码) 请求正常处理完毕
3XX Redirection(重定向状态码) 需要进行附加操作以完成请求
4XX Client Error(客户端错误状态码) 服务器无法处理请求
5XX Server Error(服务器错误状态码) 服务器处理请求出错

2XX 成功

  • 200 OK

  • 204 No Content :请求已经成功处理,但是返回的响应报文不包含实体的主体部分。一般在只需要从客户端往服务器发送信息,而不需要返回数据时使用。

  • 206 Partial Content :表示客户端进行了范围请求。响应报文包含由 Content-Range 指定范围的实体内容。

3XX 重定向

相关文章

  • 笔试题之二:android面试题汇总

    **Android面试基础知识总结 **网址:http://blog.csdn.net/sinat_3366126...

  • PHP面试准备

    Tech Interview Guide 技术面试必备基础知识、Leetcode、Java、C++、Python、...

  • 网站

    (用动画的形式呈现解LeetCode题目的思路) 技术面试必备基础知识、Leetcode 题解、后端面试、Java...

  • 一线互联网拼多多、饿了么、蚂蚁金服、哈啰出行、携程、饿了么、23

    面试主要分为两块: 一块是考查工程师对基础知识(包括了技术广度、深度、对技术的热情度等)的掌握程度,因为基础知识决...

  • 面试 后端技术面试38讲

    面试 后端技术面试38讲 课程地址:http://ityuanke.com/thread-444-1-1.html...

  • [面试] 面试题

    [面试] 面试题 标签(空格分隔): java 写文章Java研发方向如何准备BAT技术面试(超级干货) http...

  • American Express Technical Inter

    今天参加了美国运通UK分部技术实习生的技术面试。 面试是online的,借用的HackerRank的平台(http...

  • 面试-技术篇

    基础 由于基本部分知识点过多,主要分两部走:第一步:收集面试题:包含但不仅限于:脑中未解决的问题、作为面试官问的问...

  • 浏览器User-Agent、Cookie

    一、基础知识篇:Http Header之User-AgentUser Agent中文名为用户代理,是Http协议中...

  • User-agent大全

    一、基础知识篇:Http Header之User-AgentUser Agent中文名为用户代理,是Http协议中...

网友评论

      本文标题:技术面试基础知识:HTTP 篇

      本文链接:https://www.haomeiwen.com/subject/yadddjtx.html