HTTP请求的内容资源由统一资源标识符(uniform resource identifiers,URI)来标识
关于资源定位及标识有三种:
1)统一资源标识符(uniform resource identifiers,URI):用来唯一标识一个资源
2)统一资源定位器(uniform resource locator,URL):是一种具体的URI,URL可以用来标识一个资源,而且可以访问或者获取该资源
3)统一资源命名(uniform resource name,URN):通过名字来标识或者识别资源
如下图URI、URL、RUN的区别
URL肯定是一个URI,但是一个URI并不一定是一个URL;URI是资源标识符,所有他只要求具有"标识性",而URL是和URI的主要区别就是,URL除了具有URI的“标识性”以外,还具有定位功能,可以用来描述资源的具体位置,还指明了获取资源所采用的协议。
URN也是URL的一种表现形式,它和URL的区别就是与资源的位置无关,正式由于位置的无关性,被某个URN标识的资源在位置发生变化时,其URI可以保持不变。
URL资源标识格式:protocol://host[:port]/path/.../[?query-string][#anchor]
protocol:基于某种协议,常见协议有:HTTP、HTTPS、FTP、RSYNC等
host:服务器的IP地址或者域名
port:服务器的端口号
path:访问资源在服务器的路径
query-string:传递给服务器的参数及字符串
anchor:锚点结束
例:http://www.example.com/newindex/plus/list.php?tid=2#test
端口:是TCP/IP协议中应用层进程与传输层协议实体间的通信接口
TCP/IP协议中引入了一种被称为套接字(socket)的应用程序接口。基于socket接口技术,一台计算机就可以与任何一台具有socket接口的计算机进行通信,而监听的端口在服务器端也称之为socket接口
客户端发起request,request分3部分,分别包括request line(请求行)、request header(请求头部)、body(请求数据),如下图:
使用curl –v 打印requests与response处理流程
1) 请求行(request line)
GET /index.html HTTP/1.1
指定请求类型(GET)、访问的资源(/index.html)及使用的HTTP协议版本(HTTP/1.1)
2) 请求头部(request header)
User-Agent: curl/7.29.0
Host: 192.168.10.10
Accept: */*
指定服务器要使用的附加信息,User-Agent表示用户使用的代理软件,常指浏览器
3) 空行
请求头部后面的空行表示请求头发送完毕
4) 请求数据(body)
可以添加任意数据,GET请求的body内容默认为空,一般POST请求会有内容(例如name=test)
Response响应信息:响应状态行、响应头部、空行、响应正文(body)
1) 响应状态行
HTTP/1.1 200 OK
包括HTTP协议版本号(HTTP/1.1)、状态码(200)和状态消息(OK)
2) 响应头部
响应头部附加信息
3) 空行
表示消息头部响应完毕
4) 响应正文(body)
服务器返回给客户端的信息
1) Get方法:向特定的资源发出请求,获取服务器端数据
2) POST方法:向Web服务器提交数据进行处理请求,常指提交新数据
3) PUT方法:向Web服务器提交上传最新内容,常指更新数据
4) DELETE方法:请求删除request-URL所标识的服务器资源
5) TRACE方法:回显服务器收到的请求,主要用于测试或诊断
6) CONNECT方法:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
7) OPTIONS方法:返回服务器针对特定资源所支持的HTTP请求方法
8) HEAD方法:HEAD方法跟GET方法相同,只不过服务器响应时不会返回消息体
HTTP/1.0中默认使用短连接(建立连接——数据传输——关闭连接...建立连接——数据传输——关闭连接)
HTTP/1.1中默认使用长连接(建立连接——数据传输...(保持连接)...数据传输——关闭连接)
HTTP的长连接和短连接本质上是TCP长连接和短连接
HTTP状态码用来表示Web服务器HTTP response状态的3位数字代码,常见的状态码范围分类如下:
100~199:用于指定客户端相应的某些动作200~299:用于表示请求成功300~399:已移动的文件且被包含在定位头信息中指定新的地址信息400~499:用于指出客户端的错误500~599:用于指出服务器的错误浏览器接收到Web服务器的response信息,浏览器会进行解析,在解析页面之前,浏览器必须启动本地相应的应用程序来处理获取到的文件类型。
基于多用途互联网邮件扩展类型(multipurpose internet mail extensions,MIME),可以明确某种文件在客户端用某种应用程序来打开,当改扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。
在HTTP response消息中,MIME类型被定义在Content-Type header中。例如Content-Type:text/html,表示默认指定该文件为HTML类型;exe 文件的Content-Type:application/octet-stream等。
转载于:https://www.cnblogs.com/longBlogs/p/9585880.html