7-2 HTTP 面试常考题

Posted WinvenChang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7-2 HTTP 面试常考题相关的知识,希望对你有一定的参考价值。

一、HTTP请求的组成

HTTP协议由哪些部分组成?使用抓包工具去查看和理解
1.状态行
2.请求头
3.消息主体(用GET请求时,会没有消息主体,POST请求时,则有)

# 1、安装 httpie
pip install httpie

# 2.用 http 命令
http baidu.com

运行结果:
在这里插入图片描述
http -v

http -v baidu.com

执行结果:
在这里插入图片描述
注意:常用的HTTP请求头也是面试常考点

二、HTTP响应的组成

1.状态行
2.响应头
3.响应正文

三、HTTP常见状态码

了解常见的HTTP相应状态码
1.1XX表示信息。服务器收到请求,需要请求者继续执行操作
2.2XX表示成功。操作被成功接受并处理
3.3XX表示重定向。需要进一步操作完成请求。
4.4XX表示客户端错误。请求有语法错误或者无法完成请求
4.5XX表示服务器错误。服务器在处理请求的过程中发生错误

注意:牢记常见状态码的含义(220, 301, 302, 400, 403, 500)等

四、HTTP GET/POST区别

常见的 HTTP方法:GET/POST/PUT/DELETE

  • GET获取
  • POST创建
  • PUT更新
  • DELETE删除
  1. Restful语义上来说,一个是获取,一个是创建
  2. GET是幂等的,POST非幂等
  3. GET请求参数放到url(明文),长度有限制;POST放在请求体,更安全

五、什么是幂等性

什么是幂等?哪些HTTP方法是幂等的
1.幂等方法是无论调用多少次都得到相同结果的HTTP方法
2.例如:a=4是幂等的,但是 a += 4就是非幂等的
3.幂等的方法客户端可以安全地重发请求
4.安全指的HTTP是否会修改服务端的数据,会则是不安全的,不会则是安全的

六、幂等方法

HTTP Method(请求方法)Idempotent(幂等性)Safe(安全性)
OPTIONSyesyes
GETyesyes
HEADyesyes
PUTyesno
POSTnono
DELETEyesno
PATCHnono

说明:幂等是指多次请求结果和请求一次结果一样;安全指的是是否会修改数据。

七、什么是 HTTP 长连接

HTTP persistent connection, HTTP 1.1
1.短连接:建立连接。。。数据传输。。。关闭连接(连接的建立和关闭开销大)
2.长连接:Connection: Keep-alive。保持TCP连接不断开。

3.如何区分不同的 HTTP请求呢?Content-Length|Transfer-Encoding:chunked

Content-Length首部告诉浏览器报文中实体主体的大小

八、cookiesession区别

HTTP是无状态的,如何识别用户呢?需要在服务端给用户生成一个标识,然后每次让客户端带过去给后端
1.Session一般是服务器生成之后给客户端(通过 url参数或cookie
2.Cookie是实现session的一种机制,通过 HTTP cookie字段实现
3.Session通过在服务器保存 sessionid识别用户,cookie存储在客户端。

九、本章回顾

HTTP重点内容
1.请求和响应的组成
2.常用HTTP方法和幂等性
3.长连接;sessioncookie

以上是关于7-2 HTTP 面试常考题的主要内容,如果未能解决你的问题,请参考以下文章

翻转单词面试常考题

链表面试-链表分割(常考题)

python面试总结2(函数常考题和异常处理)

回溯面试常考题

LeetCode面试常考题:Two Sum

LeetCode面试常考题:Two Sum