简单了解HTTP协议相关内容。
arp协议
IP能够通过arp协议解析出mac地址。
-----------------------------------------------------------------------
通信流程
http协议生成针对目标web服务器的http请求报文
收到后处理报文
tcp协议将http报文请求按序号分割成报文段
收到后将报文段重组
ip协议搜索对方的地址,一边中转一边传送
-----------------------------------------------------------------------
dns解析,应用层协议,将域名解析成ip地址
URI 统一资源标识符与URL 统一资源定位符
URL是URI的子集
URI包括
ftp://
http://
ldap://
tel:
telnet://
news:
urn:等
-------------------------------------------------------------
请求报文的构成:
方法 URI 协议版本
POST /form/entry HTTP/1.1
请求头
请求体
-------------------------------------------------------------
响应报文构成
协议版本 状态码 状态码的原因短语
HTTP/1.1 200 OK
响应头
响应体
-------------------------------------------------------------
HTTP是无状态协议,所以为了保存状态,有了Cookie。
HTTP中的方法:
GET方法用来请求访问已被URI识别的资源。
请求 GET /index.html HTTP/1.1
Host:www.xxx.jtp
响应 返回 index.html的页面资源
请求 GET /index.html HTTP/1.1
Host:www.xxx.jtp
if-Modified-Since:Thu,12 Jul 2017 12 17 07:30:00 GMT
响应 仅访问这个时间以后更新过的资源,
如果没有内容更新,则以状态码304 Not Modified作为响应内容。
-------------------------------------------------------------
POST :传输实体主体
请求 POST /submit.cgi HTTP/1.1
Host:www.xxx.jtp
Content-Length:1560
响应 返回submit.cgi接收数据的处理结果
-------------------------------------------------------------
PUT:传输文件
请求 PUT /example.html HTTP/1.1
Host:www.hackr.jp
Content-Type:text/html
Content-Length:1560
响应 响应返回状态码 204 No Content (请求执行成功,但没有返回内容)
-------------------------------------------------------------
DELETE 删除文件
OPTIONS 询问支持的方法
请求 OPTIONS*HTTP/1.1
Host:www.xxx.jp
响应 HTTP/1.1 200 OK
Aallow:GET,POST,HEAD,OPTIONS (返回支持的方法)
-------------------------------------------------------------
持久连接概念:以前http1.0时候,每次请求一个资源都要连接再断开一次tcp,消耗资源
HTTP/1.1和部分1,0有了持久连接功能,只要任意一段没有明确提出断开,则保持tcp连接状态。
MIME概念:允许邮件处理文本,图片视频等多个不同类型的数据传输。多种数据的多部分对象集合。
在HTTP报文中使用多部分对象集合时,需要在首部字段里加上Content-type。
内容协商:
例如同一个页面分为中文版英文版,根据浏览器默认语言访问相应的内容。这样的机制叫内容协商。
内容协商会以语言,字符集,编码方式为基准判断响应的资源。
-------------------------------------------------------------
状态码
状态码告知从服务器端返回的请求结果。
1xx Informational 信息性状态码 接受的请求正在处理
2xx Success 成功状态码 请求正常处理完毕
3xx Redirection 重定向状态码 需要进行附加操作以完成请求
4xx Client Error 客户端错误状态码 服务器无法处理请求
5xx Server Error 服务端错误状态码 服务器处理请求错误
具体例如:
200 OK 表示从客户端发来的请求在服务器端被正常处理了。
204 No Content 服务器接收的请求已成功处理,但在返回的相应报文中不含实体部分。也不允许返回任何实体的主体。
例如,提交之后页面不更新,没变化。
206 Partial Content 表示客户进行了范围请求,服务器成功执行了这部分的GET请求,响应报文中包含由Content-Range指定范围的实体内容。
301 Moved Permanently 永久性重定向,该状态码表示请求的资源已被分配了新的URL。如果保存了书签需要更新书签了。
302 Found 临时重定向,该状态码表示请求的资源已被分配了新的uri,希望用户能使用熄灯呢uri访问。
303 See Other 该状态码表示由于请求对应的资源存在着另一个uri,应使用get方法定向获取请求的资源。
304 Not Modified 表示客户端发送附带条件的请求时,服务器端允许请求访问资源,但因发生请求为满足条件的情况后,
直接304,不包含任何响应的主体部分,和重定向没有关系。
307 Temporary Redirect 临时重定向,该状态码与302有相同的含义
400 Bad Request 请求报文中存在语法错误。
401 Unauthorized 发送的请求需要有通过http认证的认证信息。
403 Forbidden 对请求资源的访问被服务器拒绝了。
404 Not Found 表示无法找到请求资源
500 服务器端执行请求时发生了错误。
503 Service Unavailable 服务器暂时处于超负载或正在进行停机维护,无法处理请求。
-------------------------------------------------------------