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
删除
Restful
语义上来说,一个是获取,一个是创建GET
是幂等的,POST
非幂等GET
请求参数放到url
(明文),长度有限制;POST
放在请求体,更安全
五、什么是幂等性
什么是幂等?哪些HTTP
方法是幂等的
1.幂等方法是无论调用多少次都得到相同结果的HTTP
方法
2.例如:a=4
是幂等的,但是 a += 4
就是非幂等的
3.幂等的方法客户端可以安全地重发请求
4.安全指的HTTP
是否会修改服务端的数据,会则是不安全的,不会则是安全的
六、幂等方法
HTTP Method(请求方法) | Idempotent(幂等性) | Safe(安全性) |
---|---|---|
OPTIONS | yes | yes |
GET | yes | yes |
HEAD | yes | yes |
PUT | yes | no |
POST | no | no |
DELETE | yes | no |
PATCH | no | no |
说明:幂等是指多次请求结果和请求一次结果一样;安全指的是是否会修改数据。
七、什么是 HTTP
长连接
HTTP persistent connection, HTTP 1.1
1.短连接:建立连接。。。数据传输。。。关闭连接(连接的建立和关闭开销大)
2.长连接:Connection: Keep-alive
。保持TCP
连接不断开。
3.如何区分不同的 HTTP
请求呢?Content-Length|Transfer-Encoding:chunked
Content-Length
首部告诉浏览器报文中实体主体的大小
八、cookie
和session
区别
HTTP
是无状态的,如何识别用户呢?需要在服务端给用户生成一个标识,然后每次让客户端带过去给后端
1.Session
一般是服务器生成之后给客户端(通过 url
参数或cookie
)
2.Cookie
是实现session
的一种机制,通过 HTTP
cookie
字段实现
3.Session
通过在服务器保存 sessionid
识别用户,cookie
存储在客户端。
九、本章回顾
HTTP
重点内容
1.请求和响应的组成
2.常用HTTP
方法和幂等性
3.长连接;session
和cookie
以上是关于7-2 HTTP 面试常考题的主要内容,如果未能解决你的问题,请参考以下文章