- Web请求过程
二 :服务请求的简要过程: 1、用户在浏览器的地址栏中输入主机域名,例如:www.csdn.com 2、浏览器需要将域名解析为对应的IP地址。域名到对应IP地址的解析过程为(简要过程): 浏览器进程调用解析程序(resolver),并成为DNS的一个客户,把带解析的域名存放在DNS请求报文中(请求以UDP用户数据报方式发送给本地域名服务器)。本地域名服务器查找域名对应的IP地址(本地域名服务器查找失败时会向*域名服务器发起查找请求......),并将对应的IP地址放在回答报文段中返回。浏览器获得目的主机的IP地址之后即可进行下一步通信。 3、浏览器与服务器建立TCP连接(IP地址+默认端口号:80)。 4、浏览器发起一个GET请求。 5、服务器收到浏览器请求,给出相应的响应(服务处理请求的过程是一个可简单可复杂的处理过程,稍后在详细介绍)。 6、释放TCP连接。 7、浏览器获得服务器返回的数据,并进行解析和显示。
- HTTP(Hyper Text Transfer Protocol)
二: HTTP 的报文结构: 1、HTTP报文分为两类: 请求报文:从客户端向服务器端发送请求报文 响应报文:从服务器端到客户端的回答 2、HTTP的请求和响应报文都由三个部分组成。两种报文格式的区别就是开始行不同: (1)开始行 :用于区别是请求报文还是响应报文,在请求报文中开始行叫做请求行(Request-Line),在响应报文中开始行叫做状态行(Status-Line)。 请求行的组成由“三个内容” 组成,即:方法、请求资源的URL、HTTP版本 。常用的方法有 GET 和 POST 例如: GET http://www.csdn.com/index HTTP/1.1 (“三个内容”之间用空格 " " 隔开的) (2)首部行:用来说明浏览器、服务器和报文主体的一些信息,首部行可以是好几行也可以没有。 在每一个首部行中都有首部字段名和它的值,每一行结束的地方要有”回车“和”换行“。整个首部结束时,还有一个空行将首部行和后面的实体主体区别开。 (3)实体主体:在请求报文中一般不使用这一字段,响应报文中也可能没有。 请求报文段示例: GET /index HTTP/1.1 ---- {请求使用了相对的URL} Host: www.csdn.com----{首部行的开始,给出了主机域名} Connection: close----{告诉服务器发送完请求文档后就可以释放连接了} User-Agent:Mozilla/17----{表示用户使用的浏览器类型和版本} Accept-language: cn----{表示用户希望优先获得的文档的语言类型} [请求报文的最后还有一个空行] ----{这个请求报文并没有实体主体} 3、响应报文的响应状态码: 响应状态码分为 5 类 33 种: 1xx : 表示通知信息,如接受到了或是正在处理 2xx :表示成功,如接受到了或是知道了 3xx :表示重定向 4xx :表示客户端错误,如请求的URL不正确 5xx :表示服务器的错误,如服务器压力过大无法完成请求响应