面试准备——计算机网络(http)
一、各种协议与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)的更多相关文章
- java后台面试之计算机网络问题集锦
1.http和https的区别 2.对称加密和非对称加密 3.三次握手与四次挥手的流程 4.为什么TCP需要三次握手?两次不可以吗?为什么 5.为什么TCP挥手需要四次?三次不行吗? 6.TCP协议如 ...
- 面试准备——计算机网络(https)
一.为什么要提出HTTPS? HTTP的缺点: 明文通信.不加密,可能被窃听. 无身份验证,可能遭遇伪装. 无法证明报文的完整性,可能被篡改. 二.HTTPS = HTTP+加密(防窃听)+认证(防伪 ...
- 面试准备——计算机网络(TCP的三次握手和四次挥手)
一.TCP的报文结构 红色圈标出的是在讨论三次握手和四次挥手时会用到的首部字段: 顺序号(seq):TCP对从网络层传下来的数据报文进行分组,分成一段一段的TCP报文段,并对这些报文段进行编号.seq ...
- PHP开发知识
基本职能 服务器端开发-PHP,主要使用语言是PHP,主要是服务端工程师. 具体要求 对PHP达到熟悉的程度:熟读PHP手册,掌握开发的小技巧. 学习和研究PHP内核. 设计模式,缓存,存储 深远价值 ...
- 面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
基础篇:操作系统.计算机网络.设计模式 一:操作系统 1. 进程的有哪几种状态,状态转换图,及导致转换的事件. 2. 进程与线程的区别. 3. 进程通信的几种方式. 4. 线程同步几种方式.(一定要会 ...
- Java面试知识点之计算机网络篇(一)
前言:在Java面试中,计算机网络的知识也是一项重点,因此笔者在此对计算机网络的相关知识进行总结. 1.OSI参考模型 自下而上:物理层(物理介质,比特流).数据链路层(网卡.交换机).网络层(IP协 ...
- 【转】[IT综合面试]牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
感谢IT面试群 S-北京-陈磊 的整理分享. 基础篇:操作系统.计算机网络.设计模式 提高篇:WIN32.MFC与Linux 算法篇:算法与数据结构 一:操作系 ...
- 从零开始的计算机网络基础(图文并茂,1.8w字,面试复习必备)
前言 在互联网高速发展的今天,我们通过手机,电脑等通讯设备可以很轻松达到未出茅庐便知天下事的境界.每天我们都要访问数不胜数的网站,通过打开浏览器,输入网址两步搞定.当然更为常规的做法是打开浏览器,设置 ...
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结 转载
基础篇:操作系统.计算机网络.设计模式 一:操作系统 1. 进程的有哪几种状态,状态转换图,及导致转换的事件. 2. 进程与线程的区别. 3. 进程通信的几种方式. 4. 线程同步几种方式.(一定要会 ...
随机推荐
- web cache & web storage all in one
web cache & web storage all in one web cache in action web cache best practices web storage in a ...
- puppeteer render local HTML template bug
puppeteer render local HTML template bug ➜ url-to-poster git:(master) ✗ dev ^-v-^ app is running in ...
- NGK项目八大板块是什么?
公链项目生态各板块中,应用生态繁荣与实体经济联系作为密切,也被看做公链平台追求的终极目标,NGK公链以实体企业粘合客户,致力于重塑金融体系,构建全球区块链生态. NGK让经济权益上链发行,目前已有八大 ...
- DeFi里的灰度?每月获得高收益?BGV代币初探
2020年已经接近了尾声,但是DeFi市场的热闹场面并没有停止,或者说,一直在延续.资本市场不断将大批的资金投入到DeFi市场中,以求在这波热潮中赚得一波又一波红利. 美国时间12月21日,Bacca ...
- 【SpringMVC】 4.2 异常处理
SpringMVC学习记录 注意:以下内容是学习 北京动力节点 的SpringMVC视频后所记录的笔记.源码以及个人的理解等,记录下来仅供学习 第4章 SpringMVC 核心技术 4.2异常处理 ...
- iOS 兼容性处理
1. scroll滑动层,在iOS中滑动不流畅的处理 -webkit-overflow-scrolling:touch; //在滑动层标签添加这个样式 2. iOS 系统中input标签,去掉圆角效果 ...
- ASP.NET Core WebApi版本控制
前言: 在日常项目开发中,随着项目需求不断的累加.不断的迭代:项目服务接口需要向下兼容历史版本:前些时候就因为Api接口为做版本管理导致接口对低版本兼容处理不友好. 最近就像了解下如何实现WebApi ...
- 自己写的一个抢票加速的Python小程序源码分享-----纯属娱乐
最近这段时间频频看到微信群里发什么 抢票加速,智行.携程.飞猪.美团,对于我这能坐客车就不坐火车的人来说,无所谓靠谱不靠谱 突发奇想的整理了下整个抢票加速的逻辑,写了这个小程序,代码很low,拒绝批评 ...
- 第43天学习打卡(JVM探究)
JVM探究 请你谈谈你对JVM的理解?Java8虚拟机和之前的变化更新? 什么是OOM,什么是栈溢出StackOverFlowError? 怎么分析? JVM的常用调优参数有哪些? 内存快照如何抓取, ...
- JUnit5学习之七:参数化测试(Parameterized Tests)进阶
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...