用户输入URL到HTTP请求发送到TOMCAT

壹:用户输入URL,用户在浏览器窗口输入URL,URL解析为IP地址。

贰:DNS域名解析,浏览器检查缓存中有没有域名对应的IP地址,如果有直接通过TCP三次握手建立TCP连接,如果缓存中没有,用户本次访问,由DNS服务器完成解析,返回给用户,用户使用IP跟应用服务器建立TCP连接。

叁:建立TCP连接,根据IP地址找到对应的服务器,浏览器以一个介于(1024-65535)之间的一个端口号,向服务器WEB程序的80端口发起TCP请求。通过TCP三次握手,建立Scoket连接。

    TCP三次握手,1.Client首先发送一个链接试探。等待服务器回复。2.Server监听到连接请求的报文后,如同意建立连接,则向Client发送确认,等待Client的确认。3.Client收到确认后再次发送确认,同时携带要发送给Server的数据。Server端一旦收到Client的确认之后,这个TCP连接就建立,就可以发起HTTP请求。

肆:发送HTTP请求,客户端向服务器发送HTTP协议请求包,服务器向客户机发送HTTP协议应答包如果请求的是动态语言的内容,服务器会调用动态语言解析引擎处理动态内容,并将处理得到的数据返回客户端。

    HTTP请求格式包

GET/sample.jspHTTP/1.1                       请求方法URI协议/版本

Accept:image/gif.image/jpeg,*/*                    用于指定客户端接受的字符集

Accept-Language:zh-cn                                指定的自然语言

Connection:Keep-Alive                                  当前链接是否保持

Host:localhost                                用户请求资源的Internet主机和端口号,如Host:www.taobao.com

User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)        客户端操作系统,浏览器和其他属性

Accept-Encoding:gzip,deflate                         用户指定客户端接受的字符集

username=jinqiao&password=1234     请求正文

标注:中间黑色字部分为请求头

    HTTP应答包

HTTP/1.1 200 OK                                      协议状态版本代码描述

Server:Apache Tomcat/5.0.12                       服务器端服务器名称,如Server:Apache/1.3.6(Unix)

Date:Mon,6Oct2003 13:23:42 GMT                

Content-Length:112                                    指明正文的长度,用以字节方式存储的十进制数字来表示。

<html><head></head><body>Hello HTTP!</body></html>   响应正文

标注:中间黑色字部分为响应头

    知识拓展:IP,HTTP,Socket简单了解

目前在Internet中所有的传输都是通过TCP/IP进行的。

网络由下往上分为 物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。

IP协议对应网络层,TCO协议对应传输层,HTTP对应应用层。

http为短连接:客户端发送请求都需要服务器响应,请求结束后主动释放链接,因此为短连接。

Scoket为长连接,Socket是对TCP/IP协议的封装,Socket只是个接口不是协议,通过Socket我们才能使用TCP/IP协议。Socket实际就是TCP连接,因此一旦建立,通讯双方开始互发数据,直到双方断开连接。

Socket连接,可以由服务器直接向客户端发送数据。

Http连接,服务器需要等待客户端发送请求,才能将数据回传到客户端。

 

转载于:https://my.oschina.net/u/2546238/blog/893928

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值