HTTP协议之http url简介

by:授客 QQ1033553122

http url简介

http url通过http协议,用于定位网络资源,是一种特殊类型的URI(统一资源定位)

http_url = http://host[:port][abs_path[?query]]

说明:

host:合法的主机名或ip地址

port:端口,缺省为80

abs_path:指定请求资源的URI,如果URL中没给出abs_path,那么当它被当作资源请求的URI使用时必须以“/”的形式给出,通常浏览器自动帮我们完成了,如果abs_path为空,则等同于值为“/”的abs_path

例如

1.  浏览器输入http://www.fjou.tmc,浏览器自动转换为http://www.fjou.tmc/

2.  http://192.168.206.8:8080/jsp/setNotice.jsp

url访问过程

以以下过程为例,对HTTP的操作过程进行说明

例子:浏览器中打开一个网页,比如http://ishouke.blog.sohu.com,然后关闭浏览器。

操作过程:

1. 预处理操作(比如查找缓存,分析连接指向的页面URL)以及等待网络连接可用

2. DNS查找:浏览器进程调用解析程序,成为DNS的一个客户,把待解析的域名ishouke.blog.sohu.com,放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器。本地域名服务器在查找域名后,把对应的IP地址放在回答报文中返回。浏览器进程获得域名对应的的IP地址后才能进行通信

注意:若本地域名服务器不能回答该请求,则此域名服务器暂时成为DNS中的另一个客户,并向其它域名服务器发出查询请求。这种过程直到找到能够回答该请求的域名服务器为止。

3. 建立TCP连接

浏览器找到主机ip,即域名ishouke.blog.sohu.com对应的ip地址地址后,向服务器发送TCP请求报文,请求建立TCP连接。

服务器有一个服务进程,不断的监听TCP的端口80,以便发现是否有建立连接的请求。建立过程也就是所谓的“3次握手”,如图

4. 发送HTTP请求报文

一旦监听到连接建立请求并建立了TCP连接之后,浏览器向web服务器发出浏览某个页面的请求,即获取文件指令,比如:

get http://ishouke.blog.sohu.com/

get http://ishouke.blog.sohu.com/page/widget.do?ebi=506e9d91a2&m=view&

type=categories

5. 发送HTTP响应报文

服务器收到浏览器发送的HTTP请求报文后,返回请求的页面作为响应.

6. 浏览器展示返回的页面

7. 释放TCP连接

浏览器关闭web页面后,释放TCP连接,释放过程也就是所谓的4次挥手

说明:

1.HTTP协议使用了面向连接的TCP作为运输层协议,保证了数据的可靠传输。HTTP不必考虑数据在传送过程中被丢弃后又怎样重传。但是,HTTP协议本身是无连接的。这就是说,虽然HTTP使用了TCP连接,但通信的双方在交换HTTP报文之前不需要建立HTTP连接。

2.HTTP协议是无状态的,也就是说,同一个客户第二次访问同一个服务器上的页面时,服务器的响应和第一次被访问时的相同(假定被访问页面未更新),服务器并不记得曾经访问过的这个客户,也不记得为该客户服务过多少次。HTTP的无状态特性简化了服务器的设计,以便支持大量并发的HTTP请求。

网络基础 HTTP协议之http url简介的更多相关文章

  1. 软件定义网络基础---NETCONF协议

    netconf协议最早被作为网管协议被提出来的,与SNMP网管协议相比较:SNMP的优势在于网络设备的监测,在大规模网管应用中有很大不足,正是针对这种不足之处,提出了NETCONF协议 一:NETCO ...

  2. 网络基础 HTTP协议之缓存简介

    HTTP协议之缓存简介 by:授客 QQ:1033553122 用浏览器查看缓存 IE为例,Tools->Internet options -> View files,如图 点击图示的Vi ...

  3. 网络基础 HTTP协议之HTTP消息(HTTP Message)

    HTTP协议之HTTP消息(HTTP Message) by:授客 QQ:1033553122 1.   消息类型(Message Type) HTTP messages包含从客户端到服务器的请求和服 ...

  4. 网络基础 Windows控制台下Ftp使用简介

    Windows控制台下Ftp使用简介 by:授客 QQ:1033553122 测试环境: ftp服务器所在主机ip:172.25.75.2 ftp用户目录:F:\ftp   C:\Users\laif ...

  5. 软件定义网络基础---OpenFlow协议

    一:OpenFlow协议概述 OpenFlow协议为控制器与交换机之间的通信,提供了一种开放标准的方式.OpenFlow交换机通过安全通道与控制器进行信息交互 二:OpenFlow消息类型 (一)co ...

  6. 软件定义网络基础---OF-Config协议

    交换机与控制器继续通信前,是需要对其功能.特性以及资源进行配置才能进行工作,这些配置是如何实现的?是由专门的配置协议指导完成的 一:OF-Config协议 是OpenFlow交换机管理配置协议,是Op ...

  7. 三分钟网络基础-ARP协议

    什么是 ARP 协议 地址解析协议 ARP (Address Resolution Protocal):在同一局域网下,根据已知道的主机或路由器的 IP 地址,找出其相应的硬件地址. 高速缓存 每一个 ...

  8. 网络基础知识-TCP/IP协议各层详解

    TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...

  9. http基础(1.了解web及网络基础,2.简单的http协议)

    第一章:了解web及网络基础 1.http:超文本传输协议 2.tcp/ip协议族:通常使用的网络是在tcp/ip协议族的基础上运作的,而http属于它内部的一个子集. 3.tcp/ip协议族按层次分 ...

随机推荐

  1. easyui datebox 只选择月份的方法

    easyui datebox 只选择月份的方法 效果如下图: 代码如下: <html > <head> <meta charset="utf-8"&g ...

  2. MySQL笔记(6)---锁

    1.前言 我们都知道在并发的情况下,修改数据时需要添加锁,但是却对数据库锁的工作原理不甚理解,不知道锁的运行机制,也就对数据的安全性无法明白.本章记录MySQL中锁的相关知识. 2.什么是锁 锁是数据 ...

  3. @JSONField注解的使用

    FastJson中的注解@JSONField,一般作用在get/set方法上面,常用的使用场景有下面三个: 修改和json字符串的字段映射[name] 格式化数据[format] 过滤掉不需要序列化的 ...

  4. Javac中的方法

    例1: interface IA{ void m(int a); } abstract class AC implements IA{ // 这个抽象方法覆盖了 IA中的方法m public abst ...

  5. [java初探05]__数组的简单认识及Arrays类的常用方法

    数组是具有相同数据类型的一组数据的集合.在程序设计中,这样的集合称之为数组.数组的每个元素都具有相同的数据类型,在Java中数组也被看为一个对象. 在里,了解了数组的定义之后, 我们知道了,数组并不是 ...

  6. 阿里巴巴Java开发手册———总结

    前言 阿里巴巴Java开发手册———个人追加的见解和补充(一) 阿里巴巴Java开发手册———个人追加的见解和补充(二) 阿里巴巴Java开发手册———个人追加的见解和补充(三) 阿里巴巴Java开发 ...

  7. Java中带包(创建及引用)的类的编译

    Java中带包(创建及引用)的类的编译与调试 java源程序的编译大家都知道,也就是cmd中到源文件所在目录下javac **.java即可,当程序中有包声明还能简简单单的直接javac **.jav ...

  8. 使用ssh-add命令添加ssh私钥时报错

    当使用ssh-add命令添加ssh私钥时,报如下错误: Could not open a connection to your authentication agent. 其实需要先执行如下命令: e ...

  9. ASP.NET MVC HtmlHelper 类的扩展方法

    再ASP.NET MVC编程中用到了R语法,在View页面编辑HTML标签的时候,ASP.NET MVC 为我们准备好了可以辅助我们写这些标签的办法,它们就是HtmlHelper.微软官方地址是:ht ...

  10. Entity Framework 6.x - Code First 默认创建数据库的位置

    在集成DbContext的派生类中的构造函数里,如果没有指定配置文件中的数据库连接字符串的name,默认就是: Data Source=(localdb)\MSSQLLocalDB;Initial C ...