标签:http 请求 访问 URI 指定 计算机网络 面试 服务器 资源
一、各种协议与HTTP协议之间的关系
二、URI(统一资源标识符)
URI用字符串标识某一互联网资源。
URI的格式:
- 协议方案名:指定访问资源时使用的协议类型。
- 登录信息(认证):可选,指定用户名和密码作为从服务器获取资源时的登录信息(身份认证信息)。
- 服务器地址:服务器的域名或IP地址。
- 服务器端口号:可选,省略时使用默认端口号。HTTP协议的默认端口号是80,HTTPS的默认端口号是443。
- 带层次的文件路径:指定要访问的资源在服务器上存储的文件路径。
- 查询字符串:可选,传入参数。
- 片段标识符:可选,标记已获取资源的子资源(文档内的某个位置)。
三、请求报文和响应报文
HTTP报文结构:
请求URI的写法:
四、HTTP方法
HTTP方法的作用为:对请求URI指定的资源下达命令,期望对其产生某种行为。
方法 | 说明 |
GET | 请求访问URI指定的资源,指定资源经服务器解析后返回响应内容(包括实体首部和实体主体)。 |
POST | POST的只要目的不是获取响应内容,而是向服务器提交一个表单(参数&参数值)。 |
PUT | 传输文件,将请求报文的主体中包含的文件内容保存到请求URI指定的位置,不带验证机制。 |
DELETE | 删除文件,删除请求URI指定的资源,不带验证机制。 |
HEAD | 与GET方法一样,但不返回实体主体。用于确认URI的有效性及资源更新的日期时间等。 |
OPTIONS | 查询对 请求URI指定的资源 支持的请求方法。 |
TRACE | 追踪路径,在请求连接到源目标服务器的过程中可能会经过一系列的代理中转,TRACE方法可以查询这一系列的中转过程。 |
CONNECT | CONNECT方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要使用SSL(安全套接层)和TLS(传输层安全)协议把通信内容加密后经网络隧道传输。 |
五、长连接和短连接
短连接:
长连接:
管线化:
六、状态码
类别 | 原因短语 | 常见状态码 | |
1XX | Information | 接收的请求正在处理 | |
2XX | Success | 请求正常处理完毕 |
200 OK: 请求成功并返回结果。 204 No Content: 请求成功,但没有结果返回。比如在 PUT 请求中进行资源更新,但是不需要改变当前展示给用户的页面,那么返回 204 No Content。 206 Partial Content: 请求成功并返回结果,对某一资源实体一部分的请求。 |
3XX | Redirection | 需要进行附加操作以完成请求 |
301 Moved Permanently: 永久重定向,请求的资源已被永久性分配到新的URI,以后应使用资源现在所指的URI。也就是说,如果已经把资源对应的URI保存为书签了,这时应该按Location首部字段提示的URI重新保存。 302 Found:临时重定向,请求的资源已被临时分配到新的URI,但是资源不是被永久移动,以后还可能会变。所以不用更改书签,按照新给的URI重新访问即可。 303 See Other:与302功能基本相同,不同的是明确指明应该使用GET方法重新访问资源。比如如果原本是用POST方法访问,收到303时就要把POST改成GET,然后再次访问。 304 Not Modified: 该状态码表示客户端发送附带条件的请求时,服务器端允许访问资源,但是没有满足条件,所以响应也不会有主体部分。 307 Temporary Redirect: 等于302。 |
4XX | Client Error | 服务器无法处理请求 |
400 Bad Request: 请求报文中存在语法错误,服务器无法理解这个请求。 401 Unauthorized: 请求的资源需要认证信息。 403 Forbidden:服务器拒绝对请求资源的访问,一般都是因为权限不足。 404 Not found: 服务器上没有请求访问的资源。 |
5XX | Server Error | 服务器处理请求出错 |
500 Internal Server Error: 服务器在执行请求时出错。 503 Service Unavaliable: 服务器暂时无法处理请求,可能是因为超负载或者正在停机维修。 |
标签:http,请求,访问,URI,指定,计算机网络,面试,服务器,资源 来源: https://www.cnblogs.com/zyx-shadow/p/14491942.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。