首页 > 代码库 > HTTP协议学习笔记
HTTP协议学习笔记
* 浏览器浏览网页链接基本处理过程:
1.解析URL中的主机名
2.通过DNS解析主机名为IP地址
3.解析URL中端口地址(默认80)
4.与服务器建立TCP连接
5.得到连接确认后浏览器向服务器发送HTTP请求报文
6.服务器回复响应报文
7.关闭浏览器与服务器的TCP连接,浏览器显示文档
* OSI(Open System Interconnection Reference Model)模型:
1.应用层:HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等
2.表示层:把数据转换为能与接收者的系统格式兼容并适合传输的格式。(被弃用)
3.会话层:负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接。(被弃用)
4.传输层:把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议等发送信息。如TCP、UDP、TLS\SSL、PPTP等
5.网络层:决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成分组。如IP、ICMP、RIP、BGP等
6.数据链路层:负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形成了帧。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。数据链表尾(DLT)是一串指示数据包末端的字符串。例如以太网、无线局域网(Wi-Fi)和通用分组无线服务(GPRS)等。
7.物理层:在局部局域网上传送帧,它负责管理电脑通信设备和网络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机适配器等
* TCP/IP提供了:无差错的数据传输、按序传输、未分段的数据流。
* URL通用命名格式:<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>。其中最重要的是scheme(方案)、host(主机)和path(路径)
* URL常用转义表示法来表示不安全的字符:%后跟着两个表示字符ASCII码的十六进制数。有时候直接输入不安全字符也没发生错误,但是为了保持规范形式,客户端应用程序在向其他应用程序发送任意URL之前,最好把所有不安全或受限字符都进行转换。URL的每个组件都会有自己的安全/不安全字符(与方案有关),因此只有从用户那里接收URL的应用程序才能判断需要对哪些字符进行编码。
* 常见的方案格式:
http | 超文本传输协议方案,除了没有用户名和密码之外,与通用的URL格式相符,默认端口为80.基本格式:http://<host>:<port>/<path>?<query>#<frag> |
https |
与http的区别在于使用了SSL,为http连接提供了端到端的加密机制,默认端口为443.基本格式:https://<host>:<port>/<path>?<query>#<frag> |
mailto | 指向的是email地址(不指向任何可以直接访问的对象)。基本格式:mailto:<e-mail-addr> |
ftp | 文件传输协议URL可以用来从FTP服务器上下载或上载文件,并获取FTP服务器上的目录结构内容的列表。基本格式:ftp://<user>:<password>@<host>:<port>/<path>;<params> |
rtsp,rtspu |
RTSP URL是可以通过实时流传输协议(Real Time Streaming Protocol)解析的音/视频媒体资源标识符。基本格式:rtsp://<user>:<password>@<host>:<port>/<path> rtspu://<user>:<password>@<host>:<port>/<path> |
file | file表示一台指定主机上可以直接访问的文件。若省略主机名,则默认为正在使用URL的本地主机。基本格式:file://<host>/<path> |
news | news用来访问一些特定的文章或新闻组。news URL自身包含的信息不足以对资源进行定位,没有提供主机名或机器名称,由解释程序获取此类信息。基本格式:news:<newsgroup> news:<news-article-id> |
telnet | telnet用于访问交互式业务,表示的并不是对象自身,而是可通过Telnet协议访问的交互式应用程序。基本格式:telnet://<user>:<password>@<host>:<port>/ |
HTTP协议学习笔记