参考:HTTP常见面试题
HTTP超文本传输协议
超文本指的是:它可以是文字、图片、视频等的混合体
五类状态码:
- 1xx 类状态码属于提示信息,是协议处理中的一种中间状态,实际用到的比较少。
- 2xx 类状态码表示服务器成功处理了客户端的请求
- 3xx 类状态码表示客户端请求的资源发生了变动,需要客户端用新的 URL 重新发送请求获取资源,也就是重定向。浏览器会自动根据返回的url进行重定向操作。
当返回304时,代表重定向到已存在的缓冲文件。 - 4xx 类状态码表示客户端发送的报文有误,服务器无法处理,也就是错误码的含义。
- 5xx 类状态码表示客户端请求报文正确,但是服务器处理时内部发生了错误,属于服务器端的错误码。
HTTP 常见(请求头部字段)字段有哪些?
- Host:客户端发送请求时,用来指定服务器的域名。
- Content-Length:body大小
Connection: Keep-Alive
:表示保持长连接,即只要任意一端没有明确提出断开连接,则保持 TCP 连接状态。- Content-Type:数据格式。Accept:声明自己接收的数据格式
- Content-Encoding:说明数据的压缩方法。Accept-Encoding 字段说明自己可以接受哪些压缩方法。
HTTP协议解决TCP 粘包问题:
HTTP 协议通过设置回车符、换行符作为 HTTP header 的边界,通过 Content-Length 字段作为 HTTP body 的边界,这两个方式都是为了解决“粘包”的问题。
GET 和 POST 有什么区别?
GET 请求的参数位置一般是写在 URL 中,URL 规定只能支持 ASCII,所以 GET 请求的参数只允许 ASCII 字符 ,而且浏览器会对 URL 的长度有限制(HTTP协议本身对 URL长度并没有做任何规定)。