http基础知识学习(第一篇)

图解HTTP

1.HTTP:超文本传输协议

2.TCP/IP:互联网相关协议的集合。

tcp/ip分层:应用层,传输层,网络层,数据链路层。

应用层(HTTP协议):向用户提供应用服务时通信的活动。

例如:FTP:文本传输协议;DNS:域名系统。

传输层(TCP协议):对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。

例如:TCP:传输控制协议;UDP:用户数据报协议。

网络层(IP【网际协议】协议):处理网络上流动的数据包。数据包是网络传输的最小单位。
链路层:用来处理连接网络的硬件部分。

例如:控制操作系统,硬件的设备驱动,NIC(网卡)及光纤。

3.IP地址和ip协议

ip 协议:把各种数据包传送给对方。
ip 地址:节点呗分配到的地址,MAC:网卡所属的固定地址。MAC地址基本不会变。

使用ARP协议凭借MAC地址进行通信。

ARP协议:解析地址的协议,根据通信的IP地址就可以反查出对应的MAC地址。
TCP协议三次握手策略:flag-SYN-ACK。

发送端首先发送一个带有SYN标识的数据包给对方。接收端收到后,回传一个带有SYN/ACK标识的数据包以示传达确认信息。最后,发送端在回传一个带有ACK标志的数据包,握手结束。

4. URI和URL

URI:统一资源标识符;URL:统一资源定位符.

URI用字符串标识某一互联网资源,而URL表示资源的地点(互联网上所处的位置。)可见URL是URI的子集。

URI语法示例:

ftp://ftp.is.co.za/rfc/rfc1808.txt
http://www.ietf.org.rfc/rfc/rfc2396.txt
ldap://[2001:db8::7]/c=GB?objectClass?one

URI格式:

表示指定的URI,要使用涵盖全部必要的绝对URI,绝对URL以及相对URL。相对URL:是从浏览器中基本URI处指定的URL。

绝对URI的格式如下表格:
http ://user:pass @www.example.jp :80 /dir/index.html? uid=1 #ch1
协议方案名 登录信息(认证) 服务器地址 服务器端口号 带层次的文件路径 查询字符串 片段标识符

5.http协议用于客户端和服务器端的通信

http协议规定,请求从客户端发出,最后服务器响应该请求并返回。换句话说,肯定是先从客户端开始建立通信的,服务器端在没有接受到请求之前不会发送响应的。

1.请求报文是从请求方法,请求URI,协议版本,可选的请求首部字段和内容实体构成。
GET /index.htm HTTP/1.1
Host:hackr.jp

请求报文的构成如下表格
方法 URI 协议版本 请求首部字段 内容实体
POST /from/entry HTTP/1.1 Host:hackr.jp Connection:keep-alive Content-Type:application/x-www-from-urlencoded name=ueno&age=17

响应报文由协议版本,状态码(表示请成功或者失败的数字代码)、用以解释状态码的原因短语,可选的响应首部字段以及实体主题构成。

响应报文的构成如下表格
协议版本 状态码 状态码的原因短语 响应首部字段 实体
HTTP/1.1 200 OK Date :tue,10 Jul 2012 06:50:15 GMT Content-Length:362 Content-Type:text/html

6.http是不保存状态的协议

HTTP是一种不保存状态,即无状态(stateless)协议。HTTP协议自身不对请求和响应之间的通信状态进行保存。也就是说HTTP这个级别,协议对于发送的请求或者响应都不做持久化的处理。(若是想要保存状态,可以引入Cookie技术。)

7.请求URI定位资源

当客户端请求访问资源而发送请求时,URI需要将作为请求报文中的请求URI包含在内。

请求URI的方式:

~URI为完整的请求URI GET http://hackr.jp/index.htm HTTP/1.1
~在首部字段Host中写明网络域名或者IP地址 GET /inedx.htm HTTP/1.1 Host :hackr.jp
除此之外,如果不是访问特定资源而是对服务器本身发起请求,可以用一个*来代替请求URI. OPTIONS * HTTP/1.1

你可能感兴趣的:(http基础知识学习(第一篇))