之前的面试中有遇到这方面的问题,支支吾吾的答得很不好。回来之后恶补了一下这方面的知识。
简介
http协议翻译全称是:超文本传输协议,是用来规定浏览器客户端和web服务器之间用什么样的方式来通信。是基于TCP/IP通信协议来传递数据。
现在用的最多的就是http1.1这个版本了。前不久也推出了http2这个版本,不过还没有接触过。
http工作原理
http协议,记住这是一个协议,协议一般是干啥的呢,就是规则规范。http协议采用了请求/响应模型。客户端发送一个请求,服务器收到请求做出响应。这是简单的两步,当然中间还有很多细节,比如说请求方法、协议版本、请求数据、响应内容、错误信息等等等等。
请求响应的大体步骤:
- 客户端连接到web服务器
- 发送http请求
- 服务器接受请求并返回http响应
- 释放连接
如果是短连接,在响应之后就直接释放,如果是长连接,会在一定时间之后释放连接。 - 客户端解析返回的数据
get和post的区别
get请求和post请求的区别在于发送的数据的位置不同,get请求在url里,而post请求是在http包的包体里;
http协议并没有对url长度做限制,而某些特定浏览器和服务器或对它有限制。
响应报文常见状态码
200 OK 客户端请求成功
301 Moved Permanently 请求永久重定向
302 Moved Temporarily 请求临时重定向
304 Not Modified 文件未修改,可以直接使用缓存的文件
400 Bad Request 由于客户端请求有语法错误,不能被服务器所理解
401 Unauthorized 请求未经授权
403 Forbidden 请求被服务器拒绝
404 Not Found 请求资源不存在
500 Internal Server Error 服务器发生不可预期的错误
503 Service Unavailable 服务器当前不能够处理客户端的请求
简单记这么写内容,以后有需要在深入学习。