http也就是我们常说的超文本传输协议,英文术语Hyper Text Transfer Protocol,用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。同时说的http也不得不提到tcp会话级协议,它们的关系可以用一句话解释:HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
TCP: Transmission Control Protocol 传输控制协议
IP : Internet Protocol 网际协议。
常用返回码:
301 Moved Permanently---资源永久移动
302 Found---资源临时移动
304 Not Modified---未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源(如何理解304状态)
400 Bad Request---客户端请求的语法错误,服务器无法理解
404 Not Found---服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面
405 Method Not Allowed---客户端请求中的方法被禁止
500 Internal Server Error---服务器内部错误,无法完成请求
502 Bad Gateway---作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
面试互联网相关职位,http和https总是绕不过的话题,虽然平时工作暴露在这一层的工作量并不多,但是这也是编程行业的基础吧。
http
http也就是我们常说的超文本传输协议,英文术语
Hyper Text Transfer Protocol
,用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。同时说的http也不得不提到tcp会话级协议
,它们的关系可以用一句话解释:HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。http的一些特点
cookie
和session
就是一种状态mine-type
支持,客户端和服务端知道以何种方式处理GET & POST
GET
: 1、请求参数将出现在URL体上,浏览器对URL的字节长度有限制(不是http协议) 2、GET
是无害的,一般只做一种取的动作 3、GET
数据类型只允许 ASCII 字符 4、GET
会被缓存(会出现在浏览器的历史纪录中),可被浏览器收藏POST
: 1、POST
一般是表单类提交,会进行一种注册的更改 2、数据长度没有限制 3、请求数据体一般不出现在URL中GET
/POST
传参都是可以看到的,这个区分安全性是不正确的HTTP 应答码
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,资源的移动
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误
常用返回码: 301 Moved Permanently---资源永久移动 302 Found---资源临时移动 304 Not Modified---未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源(如何理解304状态) 400 Bad Request---客户端请求的语法错误,服务器无法理解 404 Not Found---服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面 405 Method Not Allowed---客户端请求中的方法被禁止 500 Internal Server Error---服务器内部错误,无法完成请求 502 Bad Gateway---作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
HTTPS
https是在http协议和tcp协议上加了一层加密协议SSL和TLS协议,关系如图所示
TLS/SSL的功能实现主要依赖于三类基本算法:散列函数 Hash、对称加密和非对称加密,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性。 下图是https的请求过程和加密详情 关于为什么要采用这种方式进行加密,掘金上有一篇文章从窃听、伪造、否认三个角度讲解https加密和链接过程(完全图解 HTTPS)
打开一个地址发生了啥
url
浏览器首先进行DNS
域名解析,在DNS
缓存中寻找是否有改域名, 否的话,一级一级上寻TCP
三次握手建立http连接